题目:
方法一:哈希,常人都可以想到直接用哈希看是否包含另一个数组即可:这里记得去重:
for(int i = 0; i < nums1.size(); i++) hash.put(nums1.get(i),hash.getOrDefault(nums1.get(i),0)+1); // int n = Math.min(nums1.size(),nums2.size()); for(int i = 0; i < nums2.size(); i++) { if(hash.containsKey(nums2.get(i))){ ret.add(nums2.get(i)); } } Set<Integer> set = new HashSet<>(); for(Integer x : ret){ set.add(x); } ret.clear(); ret.addAll(set); return ret; } }
方法二:
自己用数组模拟boolean类型的哈希表;
这里注意我们可以在,判断时去重,把放入哈希表的元素要删除(置为false)
代码: