79.两个数组的交集

给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。

/*
解题思路
排序后,双指针向右遍历
*/

class Solution {
    public int[] intersection(int[] a, int[] b) {
        Arrays.sort(a);
        Arrays.sort(b);
        List<Integer> list = new ArrayList<>();
        int i = 0, j = 0, m = a.length, n = b.length;
        while(i < m && j < n){
            if(a[i] == b[j]){
                while(i+1<m && a[i+1] == a[i]) i++;
                list.add(a[i++]);
            }else if(a[i] < b[j]){
                i++;
            }else{
                j++;
            }
        }
        int[] ans = new int[list.size()];
        for(int i1 = 0;i1 < list.size();i1++) ans[i1] = list.get(i1);
        return ans;
    }
}

 

posted @ 2022-03-20 10:26  随遇而安==  阅读(22)  评论(0编辑  收藏  举报