219 list替换Set
来源:4-8 二分搜索树底层实现的顺序性 Contain Duplicate III
慕妹2978617
2020-04-15
public static boolean containsNearbyDuplicate2(int[] nums, int k) {
//遍历nums中范围的值 这里用list 删除元素会错乱
Set<Integer> set = new HashSet<>();
for (int i = 0; i < nums.length; i++) {
int num = nums[i];
if (set.contains(num)) {
return true;
}
set.add(num);
if (set.size() == k + 1) {
set.remove(nums[i-k]);
}
}
return false;
}
老师 我用list发下这个解法就是错的,我debug打印几次list发现 list.remove 当E是Integer时 他不知道时删除元素还是删除索引,所以会错乱,但是我这里还是有点怀疑,list顺序添加 可以顺序取出的吧? 这个问题不能用list的原因是因为 remove这个方法的原因吗?
写回答
1回答
-
liuyubobobo
2020-04-15
抱歉,我没有理解你的问题。这是 Leetcode 几号问题?你的错误代码是上面的代码吗?
022020-04-15
相似问题
219题为什么不能用list
回答 1
LeetCode 219 & 220
回答 2
LeetCode 219
回答 1
关于set的实现原理问题
回答 1
对字符串的指定的ID值作批量替换
回答 1