关于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],是不是这个题目有歧义?

0
0

liuyubobobo

2020-03-02

我没有特别理解你的问题?


第一个数组中 1 出现了 1 次;第二个数组中 1 出现了 3 次。交集里,应该有 1 个 1。


继续加油!:)

0
3
催夜凉风
回复
liuyubobobo
好的,谢谢老师,对了就行了。
2020-03-06
共3条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程