File tree Expand file tree Collapse file tree 2 files changed +85
-0
lines changed
solution/0817.Linked List Components Expand file tree Collapse file tree 2 files changed +85
-0
lines changed Original file line number Diff line number Diff line change
1
+ ## 链表组件
2
+ ### 题目描述
3
+
4
+ 给定一个链表(链表结点包含一个整型值)的头结点 head。
5
+
6
+ 同时给定列表 ` G ` ,该列表是上述链表中整型值的一个子集。
7
+
8
+ 返回列表 ` G ` 中组件的个数,这里对组件的定义为:链表中一段最长连续结点的值(该值必须在列表 ` G ` 中)构成的集合。
9
+
10
+ ** 示例1:**
11
+ ```
12
+ 输入:
13
+ head: 0->1->2->3
14
+ G = [0, 1, 3]
15
+ 输出: 2
16
+ 解释:
17
+ 链表中,0 和 1 是相连接的,且 G 中不包含 2,所以 [0, 1] 是 G 的一个组件,同理 [3] 也是一个组件,故返回 2。
18
+ ```
19
+ ** 示例2:**
20
+ ```
21
+ 输入:
22
+ head: 0->1->2->3->4
23
+ G = [0, 3, 1, 4]
24
+ 输出: 2
25
+ 解释:
26
+ 链表中,0 和 1 是相连接的,3 和 4 是相连接的,所以 [0, 1] 和 [3, 4] 是两个组件,故返回 2。
27
+ ```
28
+ ** 注意:**
29
+ - 如果 N 是给定链表 head 的长度,1 <= N <= 10000。
30
+ - 链表中每个结点的值所在范围为 [ 0, N - 1] 。
31
+ - 1 <= G.length <= 10000
32
+ - G 是链表中所有结点的值的一个子集.
33
+
34
+
35
+ ### 解法
36
+ 链表被其中节点值不在列表` G ` 中的节点分成组件。依次遍历链表中的节点,若节点的值在` G ` 中,则产生一个组件,每当遇到节点值不在` G ` 中的节点,则当前组件结束。注意对链表结尾的处理。
37
+
38
+ ``` python
39
+ class Solution :
40
+ def numComponents (self , head , G ):
41
+ dic = set (G)
42
+ ans = 0
43
+ flag = 0
44
+ while head:
45
+ if head.val not in dic:
46
+ if flag == 1 :
47
+ ans += 1
48
+ flag = 0
49
+ else :
50
+ flag = 1
51
+ head = head.next
52
+ else :
53
+ if flag == 1 :
54
+ ans += 1
55
+ return ans
56
+ ```
Original file line number Diff line number Diff line change
1
+ # Definition for singly-linked list.
2
+ # class ListNode:
3
+ # def __init__(self, x):
4
+ # self.val = x
5
+ # self.next = None
6
+
7
+
8
+ class Solution :
9
+ def numComponents (self , head , G ):
10
+ """
11
+ :type head: ListNode
12
+ :type G: List[int]
13
+ :rtype: int
14
+ """
15
+ dic = set (G )
16
+ ans = 0
17
+ flag = 0
18
+ while head :
19
+ if head .val not in dic :
20
+ if flag == 1 :
21
+ ans += 1
22
+ flag = 0
23
+ else :
24
+ flag = 1
25
+ head = head .next
26
+ else :
27
+ if flag == 1 :
28
+ ans += 1
29
+ return ans
You can’t perform that action at this time.
0 commit comments