赞
踩
题目
思路
因为输出结果中每个元素是唯一的,即不包含重复元素,所以可以选择Set这种数据结构。首先遍历将数组1中的所有元素添加至Set中,此时Set中的元素全部唯一。然后遍历数组2,判断在Set中是否包含此子元素,如果存在则添加至定义好的ArrayList中,又因为数组2中可能还存在该重复元素,所以添加完之后从Set删除此元素,最后将ArrayList转换成数组返回即可
代码
import java.util.TreeSet; class Solution { public int[] intersection(int[] nums1, int[] nums2) { Set<Integer> set = new TreeSet<>(); for(int i = 0;i < nums1.length; i++) { set.add(nums1[i]); } List<Integer> list = new ArrayList<>(); for(int i = 0;i < nums2.length; i++) { if(set.contains(nums2[i])){ list.add(nums2[i]); set.remove(nums2[i]); } } int[] res = new int[list.size()]; for(int i = 0; i < list.size(); i++) { res[i] = list.get(i); } return res; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。