zoukankan      html  css  js  c++  java
  • #Leetcode# 817. Linked List Components

    https://leetcode.com/problems/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 by head1 <= 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.

    代码:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        int numComponents(ListNode* head, vector<int>& G) {
            int ans = 0;
            unordered_set<int> s(G.begin(), G.end());
            
            while(head) {
                if(s.count(head -> val) && (!head -> next || !s.count(head -> next -> val)))
                    ans ++;
                
                head = head -> next;
            }
            return ans;
        }
    };
    

      找在 G 中有多少个链表的子链表 把 G 里面的数字存到 unordered_set 中 (为了快速查找节点的数值是不是在数组中用 HashSet) 

    对于链表的数值 如果当前的在数组中且当前节点之后没有节点或者当前节点的下一个节点的值不存在在数组中那么出现一个新的子链表 所以 ans ++ 结果 return ans

  • 相关阅读:
    黑客书架上的书籍(转)
    vc 得到文件后缀名(转)
    配置IIS7(转)
    vs2008 目标框架 发布遇到的问题(转)
    CListCtrl用法(转)
    T400 折腾
    VS2008和.NET Framework3.5新功能(转)
    sql 2008 ctp 安装
    关于定位lsass内存中的明文密码(转)
    NT系统下木马进程的隐藏与检测(转)
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/10296270.html
Copyright © 2011-2022 走看看