349. [雜湊表]兩個陣列的交集
阿新 • • 發佈:2020-11-04
349. 兩個陣列的交集
方法一:雜湊表
將給定的兩個陣列內元素轉換用雜湊表儲存,再利用雜湊表特性,利用contains
判斷元素是否存在相交即可。
// 執行耗時:3 ms,擊敗了95.82% 的Java使用者 // 記憶體消耗:38.3 MB,擊敗了97.86% 的Java使用者 class Solution { public int[] intersection(int[] nums1, int[] nums2) { HashSet<Integer> set1 = new HashSet<>(); HashSet<Integer> set2 = new HashSet<>(); for (int n1 : nums1) { set1.add(n1); } for (int n2 : nums2) { set2.add(n2); } return getIntersection(set1, set2); } public int[] getIntersection(HashSet<Integer> set1, HashSet<Integer> set2){ if(set1.size() > set2.size()){ return getIntersection(set2, set1); } HashSet<Integer> intersectionSet = new HashSet<>(); for (int i : set1){ if (set2.contains(i)){ intersectionSet.add(i); } } int[] res = new int[intersectionSet.size()]; int index = 0; for(int num : intersectionSet){ res[index++] = num; } return res; } }