350. 两个数组的交集 II——(每日一题)

题目

给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。

示例 1:

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

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

public int[] intersect(int[] nums1, int[] nums2) {
       Arrays.sort(nums1);
       Arrays.sort(nums2);
       int n1=0,n2=0,i=0;
       
       int rus[] = new int[nums1.length];
       while(n1<nums1.length&n2<nums2.length)
       {
           
           if(nums1[n1]==nums2[n2])
           {
               rus[i]=nums1[n1];
               i++;
               n1++;
               n2++;
           }
           else if(nums1[n1]>nums2[n2])
           {
               n2++;
           }
           else
           n1++;


       }
       return Arrays.copyOfRange(rus, 0, i);
    }


版权声明:本文为m0_52261367原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。