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
posted @ 2024-09-11 00:22  WrRan  阅读(3)  评论(0编辑  收藏  举报