LeetCode 817. 链表组件
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 817. 链表组件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給定一個鏈表(鏈表結點包含一個整型值)的頭結點 head。
同時給定列表 G,該列表是上述鏈表中整型值的一個子集。
返回列表 G 中組件的個數,這里對組件的定義為:鏈表中一段最長連續結點的值(該值必須在列表 G 中)構成的集合。
示例 1: 輸入: head: 0->1->2->3 G = [0, 1, 3] 輸出: 2 解釋: 鏈表中,0 和 1 是相連接的,且 G 中不包含 2, 所以 [0, 1] 是 G 的一個組件,同理 [3] 也是一個組件,故返回 2。示例 2: 輸入: head: 0->1->2->3->4 G = [0, 3, 1, 4] 輸出: 2 解釋: 鏈表中,0 和 1 是相連接的,3 和 4 是相連接的, 所以 [0, 1] 和 [3, 4] 是兩個組件,故返回 2。注意: 如果 N 是給定鏈表 head 的長度,1 <= N <= 10000。 鏈表中每個結點的值所在范圍為 [0, N - 1]。 1 <= G.length <= 10000 G 是鏈表中所有結點的值的一個子集.來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/linked-list-components
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class Solution { public:int numComponents(ListNode* head, vector<int>& G) {unordered_set s(G.begin(), G.end());int ans = 0;while(head){if(s.count(head->val) && (!head->next || !s.count(head->next->val)))//當前存在,且,沒有下一個,或者 有下一個,但是值不在集合里,出現一段ans++;head = head->next;}return ans;} };36 ms 14.3 MB
總結
以上是生活随笔為你收集整理的LeetCode 817. 链表组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 360. 有序转化数组
- 下一篇: LeetCode MySQL 1179.