leetcode Intersection of Two Arrays II
阿新 • • 發佈:2018-12-17
leetcode Intersection of Two Arrays II
解題思路:排序+雙指標
使用兩個指標,如果兩個數相等,兩個指標同時向後移動,一個數小於另一個數,移動數字小的指標。
public static void main(String[] args) { // int[] arr={1,2,2,1}; // int[] arr2={2,2}; int[] arr={7,2,2,4,7,0,3,4,5}; int[] arr2={3,9,8,6,1,9}; int[] intersect = intersect(arr, arr2); System.out.println(Arrays.toString(intersect)); } public static int[] intersect(int[] nums1, int[] nums2) { Arrays.sort(nums1); Arrays.sort(nums2); List<Integer> list=new ArrayList<>(); int i=0,j=0; while(i<nums1.length && j<nums2.length){ if(nums1[i]==nums2[j]){ list.add(nums1[i]); i++; j++; }else{ if(nums1[i]<nums2[j]){ i++; }else{ j++; } } } int[] arr=new int[list.size()]; int k=0; for (Integer integer : list) { arr[k]=integer; k++; } return arr; }