问题分析:
用两个指针分别遍历即可。
问题求解:
public class Solution { /** * @param nums1 an integer array * @param nums2 an integer array * @return an integer array */ public int[] intersection(int[] nums1, int[] nums2) { List<Integer> list = new ArrayList<Integer>(); Arrays.sort(nums1); Arrays.sort(nums2); int i = 0, j = 0; while (i < nums1.length && j < nums2.length) { if(nums1[i] < nums2[j]){ i++; }else if(nums1[i] == nums2[j]){ list.add(nums1[i]); i++; j++; }else{ j++; } } int[] inter = new int[list.size()]; for (i = 0; i < inter.length; i++) { inter[i] = list.get(i); } return inter; } }
时间: 2024-10-11 05:43:45