Double pointer to solve the intersection of two arrays

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        Set<Integer> set = new HashSet<>();
        Arrays.sort(nums1);
        Arrays.sort(nums2);
        int i = 0;
        int j = 0;
        while(i < nums1.length && j < nums2.length){
            if(nums1[i] == nums2[j]){
                set.add(nums1[i]);
                i++;
                j++;
            }else if(nums1[i] < nums2[j]){
                i++;
            }else{
                j++;
            }
        }
        int size = set.size();
        int[] result = new int[size];
        int index = 0;
        for(int val : set){
            result[index] = val;
            index++;
        }
        return result;

    }
}

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324142759&siteId=291194637