题目描述:
给定两个数组,编写一个函数来计算它们的交集。
链接:https://leetcode-cn.com/problems/intersection-of-two-arrays/
思路:
代码实现:双指针,先对两个数组排序,各种维护一个指针,1. n1==n2切没有添加过就收集;2. n1 != n2, 每次移动较小的指针
class Solution {public int[] intersection(int[] nums1, int[] nums2) {Arrays.sort(nums1);Arrays.sort(nums2);int n1 = 0,n2 = 0;List<Integer> res = new ArrayList<Integer>();while(n1 < nums1.length && n2 < nums2.length) {int val1 = nums1[n1];int val2 = nums2[n2];if (val1 == val2 && !res.contains(val1)) {res.add(val1);n1++;n2++;} else {if (val1 > val2) {n2++;} else {n1++;}}}// 转int[]int[] intRes = new int[res.size()];for(int i = 0;i < res.size(); i++) {intRes[i] = res.get(i);}return intRes;}}
