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,结果就是答案会出现重复元素