两个数组的交集2

此博客链接:https://www.cnblogs.com/ping2yingshi/p/14449106.html

两个数组的交集2

题目链接:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/

题目

给定两个数组,编写一个函数来计算它们的交集。

 

示例 1:

输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2,2]
示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[4,9]

题解

先把两个数组排序,然后比较两个数组中的大小,相等时加入到列表中,最后把列表转成数组就可以了。

代码

class Solution {
    public int[] intersect(int[] nums1, int[] nums2) {
    int len1=nums1.length;
    int len2=nums2.length;
     int left=0;
     int right=0;
     Arrays.sort(nums1);
     Arrays.sort(nums2);
     List <Integer> list=new ArrayList();
     while(left<len1&&right<len2)
     {
         if(nums1[left]<nums2[right])
         {
             left++;
         }
         else if(nums1[left]==nums2[right])
         {
            list.add(nums1[left]);
            left++;
            right++;
         }
         else{
            right++;
         }
     }
       int[] array = new int[list.size()];
        for (int i = 0; i < list.size(); i++) {
            array[i] = list.get(i);
        }
        return array;
    }
}

结果

 

posted @ 2021-02-25 20:28  萍2樱释  阅读(73)  评论(0编辑  收藏  举报