码迷,mamicode.com
首页 > 其他好文 > 详细

817. Linked List Components - LeetCode

时间:2018-07-09 19:13:12      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:turn   ddn   连续   数组元素   ble   set   ems   ash   tps   

Question

817.?Linked List Components

技术分享图片

Solution

题目大意:给一个链表和该链表元素组成的一个子数组,求子数组在链表中组成多少个片段,每个片段中可有多个连续的元素

思路:构造一个set用来存储子数组元素用于判断是否存在,遍历链表,如果当前元素不存在而下一个元素存在就表示一个片段的开始了,遍历前先判断首元素是否存在

Java实现:

public int numComponents(ListNode head, int[] G) {
    Set<Integer> existSet = new HashSet<>();
    for (int tmp : G) {
        existSet.add(tmp);
    }
    int ans = existSet.contains(head.val) ? 1 : 0;
    ListNode cur = head;
    while (cur.next != null) {
        if (!existSet.contains(cur.val) && existSet.contains(cur.next.val)) {
            ans++;
        }
        cur = cur.next;
    }
    return ans;
}

817. Linked List Components - LeetCode

标签:turn   ddn   连续   数组元素   ble   set   ems   ash   tps   

原文地址:https://www.cnblogs.com/okokabcd/p/9284926.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!