350. Intersection of Two Arrays II

因为这题要计算数量了所以不能用再用Set了。
我先预排序了一下,然后是这样的一个过程。使用一个while自增pos2找到nums2中比当前nums1【POS1】要大或者等于的数,判断当前的数是否相等,等的话在while循环中在移动pos1和pos2两个指针,如果不等的话,再使用while自增pos1找到nums1中比当前nums2【pos2】要大于或者等于的数。

class Solution {
    public int[] intersect(int[] nums1, int[] nums2) {
        ArrayList result = new ArrayList<>();
        Arrays.sort(nums1);
        Arrays.sort(nums2);
        int len1 = nums1.length;
        int len2 = nums2.length;
        int pos1 = 0;
        int pos2 = 0;
        while(pos1nums1[pos1])
                    pos1++;
            }
        }
         int[] array = new int[result.size()];
        for(int i = 0 ;i

你可能感兴趣的:(350. Intersection of Two Arrays II)