原题地址:https://leetcode-cn.com/problems/intersection-of-two-arrays/
题目描述:
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [9,4]
说明:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/intersection-of-two-arrays
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
这个也有几种方法:
我用的是最复杂的方式。
中文官网题解:
https://leetcode-cn.com/problems/intersection-of-two-arrays/solution/
个人题解:
public class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Arrays.sort(nums1);
Arrays.sort(nums2);
List<Integer> result = new ArrayList<Integer>();
int i = 0, j = 0;
while (i < nums1.length && j < nums2.length) {
int n1 = nums1[i];
int n2 = nums2[j];
if (n1 == n2) {
boolean flag = false;
for(Integer k : result){
if(k == n1)
flag = true;
}
if(flag == false)
result.add(n1);
i++;
j++;
} else if (n1 < n2)
i++;
else
j++;
}
int[] ret = new int[result.size()];
int k = 0;
for (int num : result)
ret[k++] = num;
return ret;
}
}
结果:
运行结果一般。