leetcode2248. 多个数组求交集【290场周赛】(java)
简单题重拳出击
第 290 场周赛(呜呜呜 第一次搞周赛)
简单题复杂化说的就是我
class Solution {
public List<Integer> intersection(int[][] nums) {
int n = nums.length;
List<Integer> list = new ArrayList<>();
Map<Integer, Integer> map = new HashMap<>();
for(int i = 0; i < n ; i ++){
for(int num : nums[i]){
if(!map.containsKey(num)){
map.put(num, map.getOrDefault(num, 0) + 1);
}else{
map.put(num, map.get(num) + 1);
}
}
}
for(int i = 0; i < n ; i ++){
for(int num : nums[i]){
if(map.get(num) >= n){
list.add(num);
}
}
}
List<Integer> temp= new ArrayList<Integer>();
for(Integer i:list){
if(!temp.contains(i)){
temp.add(i);
}
}
Collections.sort(temp);
return temp;
}
}
其他大佬们的优化版本学一下
class Solution {
public List<Integer> intersection(int[][] nums) {
int n = nums.length;
int[] counts = new int[1001];
List<Integer> list = new ArrayList<>();
for (int number[]:nums) {
for (int x: number) {
counts[x]++;
if (counts[x] == n) list.add(x);
}
}
Collections.sort(list);
return list;
}
}
上一篇:
IDEA上Java项目控制台中文乱码
