Question 4: Intersection of Two Arrays


int[] intersection(int[] num1, int[] num2) {
    Array.sort(num1);
    Array.sort(num2);
    int i = 0;
    int j = 0;
    
    List<Integer> result = new ArrayList<>();
    while (i < nums1.length && j < nums.length) {
        if (nums1[i] < nums2[j]) {
            i++;
        }
        else if (nums2[i] < nums1[i]) {
            j++;
        }
        else {
            result.add(nums1[i]);
            //跳过所有重复的元素
            while (i + 1 < nums1.length && nums1[i+1] == nums1[i]) {
                i++;
            }
            i++;
            while (j + 1 < nums2.length && nums2[j+1] == nums2[j]) {
                i++;
            }
            j++;
        }
    }
    return resuilt.toArray();
}

Last updated