《LeetCode力扣练习》代码随想录——哈希表(两个数组的交集—Java)
刷题思路来源于 代码随想录
349. 两个数组的交集
-
Set哈希表
class Solution {public int[] intersection(int[] nums1, int[] nums2) {Set<Integer> hashSet=new HashSet<>();Set<Integer> result=new HashSet<>();for(int i:nums1){hashSet.add(i);}for(int i:nums2){if(hashSet.contains(i)){result.add(i);}}int[] nums=new int[result.size()];int count=0;for(int i:result){nums[count++]=i;}return nums;} }
350. 两个数组的交集 II
-
Map哈希表
class Solution {public int[] intersect(int[] nums1, int[] nums2) {if(nums1.length>nums2.length){return intersect(nums2,nums1);}Map<Integer,Integer> hashMap=new HashMap<>();for(int i:nums1){int num=hashMap.getOrDefault(i,0)+1;hashMap.put(i,num);}int[] result=new int[nums1.length];int index=0;for(int i:nums2){int temp=hashMap.getOrDefault(i,0);if(temp>0){hashMap.put(i,temp-1);result[index]=i;index++;}}return Arrays.copyOfRange(result,0,index);} }