NC313 两个数组的交集
添加链接描述
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums1 int整型ArrayList
* @param nums2 int整型ArrayList
* @return int整型ArrayList
*/
public ArrayList<Integer> intersection (ArrayList<Integer> nums1, ArrayList<Integer> nums2) {
// write code here
Set<Integer> set = new HashSet<>();
for(Integer i : nums1) {
if(set.contains(i)) continue;
set.add(i);
}
List<Integer> list = new ArrayList<>();
for(Integer i:nums2) {
if(list.contains(i)) continue;
if(set.contains(i)) list.add(i);
}
return new ArrayList<>(list);
}
}
解法二
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums1 int整型ArrayList
* @param nums2 int整型ArrayList
* @return int整型ArrayList
*/
public ArrayList<Integer> intersection (ArrayList<Integer> nums1, ArrayList<Integer> nums2) {
// write code here
boolean [] hash = new boolean[1010];
for(Integer i : nums1) {
hash[i] = true;
}
List<Integer> list = new ArrayList<>();
for(Integer i : nums2) {
if(hash[i]){
list.add(i);
hash[i] = false;
}
}
return new ArrayList<>(list);
}
}
因为题目数据范围不大
通过boolean [] hash = new boolean[1010] 模拟hash