817. Linked List Components - LeetCode

Question

817. Linked List Components java

Solution

題目大意:給一個鏈表和該鏈表元素組成的一個子數組,求子數組在鏈表中組成多少個片斷,每一個片斷中可有多個連續的元素數組

思路:構造一個set用來存儲子數組元素用於判斷是否存在,遍歷鏈表,若是當前元素不存在而下一個元素存在就表示一個片斷的開始了,遍歷前先判斷首元素是否存在code

Java實現:component

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;
}
相關文章
相關標籤/搜索