Appearance
0349-两个数组的交集
https://leetcode.cn/problems/intersection-of-two-arrays
给定两个数组 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] 也是可通过的
提示:
- 1 <= nums1.length, nums2.length <= 1000
- 0 <= nums1[i], nums2[i] <= 1000
思路
使用hash表缓存第一个数组,然后检查第二个数组,如果存在的数组就添加到返回列表中。
参考代码
csharp
public class Solution {
public int[] Intersection(int[] nums1, int[] nums2) {
Dictionary<int,int> dict = new Dictionary<int,int>();
for(int i=0; i<nums1.Length; i++)
{
if(!dict.ContainsKey(nums1[i])){
dict.Add(nums1[i],1);
}
}
List<int> result = new List<int>();
for(int i=0; i<nums2.Length; i++){
if(dict.ContainsKey(nums2[i])){
if(!result.Contains(nums2[i])){
result.Add(nums2[i]);
}
}
}
return result.ToArray();
}
}
AlgoPress