采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
波波老师,set.size()==k+1不代表两个索引之差最多就是K吧? 如果两个索引之差为K+1的数组范围内,只有不到K个不同的元素,那不就违反题意了吗
set是在遍历数组的过程中逐渐添加元素的。当set.size() == k + 1,表示我们已经连续看了 k + 1个元素(索引差为k),都不存在重复的元素。这里关键词是“连续”。所以,如果set.size() == k + 1了,整个数组至少有k + 1个元素:)
我不确定我完全理解了你的问题。如果你觉得自己的思考是正确的话,可以给出一个让这个算法出错的测试用例:)或者对于你认为会出问题的测试用例,实际用这个算法跑一下,跟进程序里看看会发生什么,和自己想的是否一样。针对特殊测试用例跟踪算法的每一步调用,理解算法运行的内部机理,是学习算法的关键方法哦:)
加油!
非常感谢!
我是用hashmap写的,不过还好。回来看了你的算法,刚开始也有些疑问,看了你的解释也豁然开朗了,算法的意思是:前面如果有相同的元素就返回true,若没有,则加入set中,是不重复的元素。
登录后可查看更多问答,登录/注册
课程配套大量BAT面试真题,高频算法题解析,强化训练
1.0k 13
1.1k 12
611 11
1.5k 10
1.1k 10