Skip to content
本页目录

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();
    }
}

Released under the MIT License.