817. Linked List Components
Posted ruisha
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了817. Linked List Components相关的知识,希望对你有一定的参考价值。
We are given head
, the head node of a linked list containing unique integer values.
We are also given the list G
, a subset of the values in the linked list.
Return the number of connected components in G
, where two values are connected if they appear consecutively in the linked list.
Example 1:
Input: head: 0->1->2->3 G = [0, 1, 3] Output: 2 Explanation: 0 and 1 are connected, so [0, 1] and [3] are the two connected components.
Example 2:
Input: head: 0->1->2->3->4 G = [0, 3, 1, 4] Output: 2 Explanation: 0 and 1 are connected, 3 and 4 are connected, so [0, 1] and [3, 4] are the two connected components.
Note:
- If
N
is the length of the linked list given byhead
,1 <= N <= 10000
. - The value of each node in the linked list will be in the range
[0, N - 1]
. 1 <= G.length <= 10000
.G
is a subset of all values in the linked list.
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; 8 */ 9 class Solution { 10 public: 11 int numComponents(ListNode* head, vector<int>& G) { 12 unordered_set<int> set; 13 for(int num: G){ 14 set.insert(num); 15 } 16 17 int count = 0; 18 bool prev = false; 19 ListNode* curr = head; 20 while(curr){ 21 if(set.find(curr->val)!=set.end()){ 22 if(!prev){ 23 count++; 24 prev = true; 25 } 26 }else{ 27 prev = false; 28 } 29 30 curr= curr->next; 31 } 32 return count; 33 } 34 };
以上是关于817. Linked List Components的主要内容,如果未能解决你的问题,请参考以下文章
leetcode817 Linked List Components
817. Linked List Components - Medium
817. Linked List Components - LeetCode