此博客链接:https://www.cnblogs.com/ping2yingshi/p/13506942.html
两个数组的交集
题目链接:https://leetcode-cn.com/problems/intersection-of-two-arrays/
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
题解:
前提:
返回的结果是数组,但是题目相同的交集只返回一个,所以这里定义列表来存储返回结果,最后把列表转成数组返回。
思路:
1.双层遍历。
2.拿一个数组的每个数和另外一个数组中的每个数做比较。
3.如果两个数组中的数相等,则判断列表中是否已经存在该数,如果不存在,则把这个数加入到列表中。
4.把列表转成数组。
代码:
class Solution { public int[] intersection(int[] nums1, int[] nums2) { int len1=nums1.length; int len2=nums2.length; int len=Math.max(len1,len2); // int [] res=new int [len]; List <Integer> res=new ArrayList(); int k=0; for(int i=0;i<len1;i++) for(int j=0;j<len2;j++) { if(nums1[i]==nums2[j]) // res[k++]=nums1[i]; if(!res.contains(nums1[i])) { res.add(nums1[i]); } } int[] ret = new int[res.size()]; for(int i = 0;i < ret.length;i++) ret[i] = res.get(i); return ret; } }