Leetcode 349.两个数组的交集
题目要求
- 给定两个数组 nums1 和 nums2 ,返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
解释:[4,9] 也是可通过的
提交
HashSet
因为我们只需要判断某元素是否存在,而不用统计次数,
所以利用HashSet存储num1中的元素,再遍历nums2,看nums2中的元素在HashSet中是否存在,存在即为交集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Solution { public int[] intersection(int[] nums1, int[] nums2) { HashSet<Integer> set = new HashSet<Integer>(); HashSet<Integer> result = new HashSet<>(); for (int i = 0; i < nums1.length; i++) { set.add(nums1[i]); }
for (int i = 0; i < nums2.length; i++) { if (set.contains(nums2[i])) { result.add(nums2[i]); } } int[] res = new int[result.size()]; int i = 0; for (Integer integer : result) { res[i++] = integer; } return res; } }
|