请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

波波老师,set.size()==k+1不代表两个索引之差最多就是K吧? 如果两个索引之差为K+1的数组范围内,只有不到K个不同的元素,那不就违反题意了吗

波波老师,set.size()==k+1不代表两个索引之差最多就是K吧? 如果两个索引之差为K+1的数组范围内,只有不到K个不同的元素,那不就违反题意了吗

正在回答

1回答

set是在遍历数组的过程中逐渐添加元素的。当set.size() == k + 1,表示我们已经连续看了 k + 1个元素(索引差为k),都不存在重复的元素。这里关键词是“连续”。所以,如果set.size() == k + 1了,整个数组至少有k + 1个元素:)


我不确定我完全理解了你的问题。如果你觉得自己的思考是正确的话,可以给出一个让这个算法出错的测试用例:)或者对于你认为会出问题的测试用例,实际用这个算法跑一下,跟进程序里看看会发生什么,和自己想的是否一样。针对特殊测试用例跟踪算法的每一步调用,理解算法运行的内部机理,是学习算法的关键方法哦:)


加油!

0 回复 有任何疑惑可以回复我~
  • 提问者 芒果和芒果柠檬 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-07-10 14:32:59
  • 我是用hashmap写的,不过还好。回来看了你的算法,刚开始也有些疑问,看了你的解释也豁然开朗了,算法的意思是:前面如果有相同的元素就返回true,若没有,则加入set中,是不重复的元素。
    回复 有任何疑惑可以回复我~ 2019-01-10 22:34:48
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信