817. 链表组件
题目链接 | 817. 链表组件 |
---|---|
思路 | 链表-思维题 |
题解链接 | 官方题解 |
关键点 | 题意可以转换为:1. 节点的值在nums 中且节点位于起始位置 2. 节点的值在nums 中且前一个节点不在nums 中 |
时间复杂度 | \(O(n)\) |
空间复杂度 | \(O(m)\) |
代码实现:
class Solution:
def numComponents(self, head: Optional[ListNode], nums: List[int]) -> int:
nums = set(nums)
in_set = False
answer = 0
while head:
if head.val not in nums:
in_set = False
elif not in_set:
in_set = True
answer += 1
head = head.next
return answer