两个数组的交集

此博客链接: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;
    }
}

 

            

posted @ 2020-08-14 23:29  萍2樱释  阅读(172)  评论(0编辑  收藏  举报