Intersection of Two Arrays

Given two arrays, write a function to compute their intersection.

Example:
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].

Note:
Each element in the result must be unique.
The result can be in any order.
Subscribe to see which companies asked this question

public class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        Arrays.sort(nums1);
        Arrays.sort(nums2);
        HashSet<Integer> res = new HashSet();

        int p1 = 0;
        int p2 = 0;
        int len_nums1 = nums1.length;
        int len_nums2 = nums2.length;

        while (p1 < len_nums1 && p2 < len_nums2) {
             if (nums1[p1] < nums2[p2]) {
                 p1++;
             } else if (nums2[p2] < nums1[p1]) {
                 p2++;
             } else {
                 res.add(nums1[p1]);
                 p1++;
                 p2++;
             }

        }
        
        int[] result = new int[res.size()];
        int i = 0;
        for (int x : res) {
            result[i++] = x;
        }
        return result;
    }
}
原文地址:https://www.cnblogs.com/SpeakSoftlyLove/p/5537824.html