关于7-9的leetcode第二个问题的疑问
来源:7-9 Leetcode上更多集合和映射的问题
催夜凉风
2020-03-01
老师,你好。 第二个问题我写了代码之后的有点疑惑。题目要求输出结果每个元素的出现的次数在两个数组中出现的次数一致。
我给出两个数组,我的输出答案是 【2 2 1 8 8 1】 而第一个数组1出现1次 第二个数组1出现3次。所以理论答案应该 【2 2 8 8】吧.
int[] num1={2,8,2,6,1,8};
int[] num2={2,2,1,8,9,8,1,1};
public static int[] interSectionForList(int[] num1, int[] num2){
TreeMap<Integer , Integer> treeMap = new TreeMap<>();
for(int num: num1){
if(!treeMap.containsKey(num))
treeMap.put(num, 1);
else
treeMap.put(num, treeMap.get(num)+1);
}
ArrayList arrayList = new ArrayList<>();
for(int num: num2){
if (treeMap.containsKey(num)) {
arrayList.add(num);
treeMap.put(num, treeMap.get(num)-1);
if(treeMap.get(num)==0)
treeMap.remove(num);
}
}
int [] resNum = new int[arrayList.size()];
for(int i=0 ; i<arrayList.size(); i++)
resNum[i]=arrayList.get(i);
return resNum;
}
2回答
-
草鱼禾
2021-10-15
我理解的也是,必须要求一个元素在两个数组中出现的次数一致才认为是有交集,比如数组A:[1, 2, 1]、数组B:[2, 2],数组C:[1, 2, 2]。A和B的结果应该是[](因为2这个元素在数组A中只出现了一次,在数组B中出现了两次),而B和C的结果是[2, 2],是不是这个题目有歧义?
00 -
liuyubobobo
2020-03-02
我没有特别理解你的问题?
第一个数组中 1 出现了 1 次;第二个数组中 1 出现了 3 次。交集里,应该有 1 个 1。
继续加油!:)
032020-03-06
相似问题