349.两个数组的交集如下表所示,您可以直接复制下面网址进入力扣学习,在观看下面的内容之前您一定要先做一遍哦,以便让你印象更加深刻!
https://leetcode.cn/problems/intersection-of-two-arrays/description/https://leetcode.cn/problems/intersection-of-two-arrays/description/
给定两个数组 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
该题可用集合的方法去解题,具体代码如下所示:
class Solution { public int[] intersection(int[] nums1, int[] nums2) { //if(nums1==null||nums1.length==0||nums2==null){ // return new int[0]; //} Set set1=new HashSet<>(); //集合可删除重复元素 Set result=new HashSet<>(); for(int i : nums1){ set1.add(i);//在集合中添加num1的元素 } for(int i : nums2){ if(set1.contains(i)){ //set1里面的元素包含着nums2 result.add(i); } } //另外创建一个数组存放元素,最后要返回数组 int[] arr=new int[result.size()]; int j=0; for(int i : result){ //遍历result的结果 arr[j++]=i; } return arr; } }
感谢各位读者的阅读与支持,您的支持是我前进的动力!我希望我的博文能够带给您双指针的一些算法知识和启发。如果您有任何问题或意见,请随时联系我或在评论区评论。希望本题的算法知识对大家有帮助,谢谢各位读者的支持!!!