【LeetCode】 349. Intersection of Two Arrays 两个数组的交集(Easy)(JAVA)
题目地址: https://leetcode.com/problems/intersection-of-two-arrays/
题目描述:
Given two arrays, write a function to compute their intersection.
Example 1:
Input: nums1 = [1,2,2,1], nums2 = [2,2]
Output: [2]
Example 2:
Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [9,4]
Note:
- Each element in the result must be unique.
- The result can be in any order.
题目大意
给定两个数组,编写一个函数来计算它们的交集。
解题方法
非常容易的一道题
- 用 map 记录 num1 中的元素
- 用 set 记录 num2 中在 num1 中存在元素(为了防止重复)
- set 转为 int 即可
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Map<Integer, Boolean> map = new HashMap<>();
for (int i = 0; i < nums1.length; i++) {
map.put(nums1[i], true);
}
Set<Integer> set = new HashSet<>();
for (int i = 0; i < nums2.length; i++) {
if (map.get(nums2[i]) != null) set.add(nums2[i]);
}
if (set.size() == 0) return new int[]{};
int[] res = new int[set.size()];
int i = 0;
for (int num : set) {
res[i] = num;
i++;
}
return res;
}
}
执行耗时:3 ms,击败了95.82% 的Java用户
内存消耗:38.8 MB,击败了79.33% 的Java用户