817. 链表组件
https://leetcode-cn.com/problems/linked-list-components/
解法一:
每个组件都有末尾,抓住这个即可,i一次遍历,若i在G中且i的后继不在G中,说明i是一个组件的末尾,组件+1;若i的后继为空,说明i仍是一个组件末尾
将G列表转成set才能通过,否则超时
考虑组件头也可以,不过比找末尾复杂。
class Solution:
def numComponents(self, head: ListNode, G: List[int]) -> int:
res = 0
G_set = set(G)
i = head
while i:
if i.val in G_set and (not i.next or i.next.val not in G_set):
res += 1 #找到一个组件末尾
i = i.next
return res
最后更新于