817. Linked List Components java
題目大意:給一個鏈表和該鏈表元素組成的一個子數組,求子數組在鏈表中組成多少個片斷,每一個片斷中可有多個連續的元素數組
思路:構造一個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; }