题目链接
英文链接:https://leetcode.com/problems/linked-list-components/
中文链接:https://leetcode-cn.com/problems/linked-list-components/
题目详述
给定一个链表(链表结点包含一个整型值)的头结点 head。
同时给定列表 G,该列表是上述链表中整型值的一个子集。
返回列表 G 中组件的个数,这里对组件的定义为:链表中一段最长连续结点的值(该值必须在列表 G 中)构成的集合。
示例 1:
1 | 输入: |
示例 2:
1 | 输入: |
注意:
- 如果 N 是给定链表 head 的长度,1 <= N <= 10000。
- 链表中每个结点的值所在范围为 [0, N - 1]。
- 1 <= G.length <= 10000
- G 是链表中所有结点的值的一个子集.
题目详解
- 为了快速判断当前结点的值是否在
G
中,可以把G
中元素添加到HashSet
中。由于题目说明结点的值处于[0, 10000 - 1]
,可以直接开一个boolean
数组进行判定。 - 一段连续的结点属于同一个组件,要统计组件的个数,可以对组件的第一个结点进行计数。
1 | public class LeetCode_00817 { |