leetcode-350- intersection of two arrays II

problem:

 

Package com.example.demo; 

Import of java.util.ArrayList;
 Import java.util.Arrays;
 Import java.util.List; 

public  class Test350 { 

    / ** 
     * double pointer to pre-sort the data, and then using two pointer values are found two identical arrays, and placed in list 
     * / 
    public  int [] INTERSECT ( int [] nums1, int [] nums2) {
         IF (nums1 == null || nums1.length == 0 nums2 == || null || nums2.length == 0 ) {
             return  new new  int [0 ]; 
        } 
        List <Integer> = Listnew ArrayList<>();
        Arrays.sort(nums1);
        Arrays.sort(nums2);
        int pointer1 = 0;
        int pointer2 = 0;
        while (pointer1 < nums1.length && pointer2 < nums2.length) {
            if (nums1[pointer1] < nums2[pointer2]) {
                pointer1++;
            } else if (nums1[pointer1] > nums2[pointer2]) {
                pointer2++;
            } else {
                list.add(nums1[pointer1]);
                pointer1++;
                pointer2++;
            }
        }
        int[] res = new int[list.size()];
        for (int i = 0; i < list.size(); i++) {
            res[i] = list.get(i);
        }
        return res;
    }

    public static void main(String[] args) {
        Test350 t = new Test350();
        int[] arr1 = {4, 9, 5};
        int[] arr2 = {9, 4, 9, 8, 4};
        int[] intersect = t.intersect(arr2, arr1);
        for (int i : intersect) {
            System.out.print(i + " ");
        }
    }
}

 

Guess you like

Origin www.cnblogs.com/nxzblogs/p/11270150.html