import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums1 int整型一维数组
* @param nums2 int整型一维数组
* @return int整型一维数组
*/
public int[] intersection (int[] nums1, int[] nums2) {
// write code here
HashMap<Integer, Integer> map=new HashMap<>();
TreeSet<Integer> list=new TreeSet<>();
for (int i = 0; i < nums1.length; i++) {
map.put(nums1[i], map.getOrDefault(nums1[i], 0)+1);
}
for (int i = 0; i < nums2.length; i++) {
if(map.containsKey(nums2[i])) {
list.add(nums2[i]);
}
}
int a[]=new int[list.size()];
int t=0;
for (int i : list) {
a[t]=i;
t++;
}
Arrays.sort(a);
return a;
}
}
这题要选对数据结构,可以使用哈希表装nums1的数值,然后用TreeSet装nums2的数值,因为数据结构的性质,里面装的元素不会重复,这正好满足集合的要求,我之前还在使用ArrayList,结果就是答案会出现重复元素



京公网安备 11010502036488号