两个数组的交集

题目:

  

思路:

  1 Arrays.sort() 排序两个数组

  2 定义双指针,和一个list 集合 访问数组相等的加入list


 (一)代码

class Solution {
    public int[] intersect(int[] nums1, int[] nums2) {

        //排序
        Arrays.sort(nums1);
        Arrays.sort(nums2);

        int length1 = nums1.length;
        int length2 = nums2.length;
        int p1 = 0,p2 = 0;
        //定义集合
        List<Integer> list = new ArrayList<>();
        while(p1 < length1 && p2 < length2){
            if(nums1[p1] == nums2[p2]){
                list.add(nums1[p1]);
                p1++;
                p2++;
            }else if(nums1[p1] > nums2[p2]){
                p2++;
            }else if(nums1[p1] < nums2[p2]){
                p1++;
            }

        }

        int[] result = new int[list.size()];
        for(int i = 0 ; i < list.size() ; i++){
            result[i] = list.get(i);
        }

        return result;

    }
}

         比比赖赖

原文地址:https://www.cnblogs.com/misscai/p/15080048.html