如图,在牛客刷题遇到了这么一道题。想用hashmap来解决,但是出现了实际输出值大于理论输出值的情况。是否是因为重复键值引起还是其他原因。求解
你题目理解错了,给你举个例子,假设数组是{2,1,3,1,8},按照你的方法输出的是4,实际正确结果为3。题目的意思是实际上是从数组中截取一段连续的子数组,然后让这段子数组最长,并且不能有重复。比如这样
或者这样
你的解题方式有问题,别人是问最长无重复字串。不是问一共有多少个不重复的数字
HashMap 不可能出现重复建,你可以用Iterator 遍历出来看看验证一下。
如果是字符串请注意大小写,空格等字符的影响。
为什么不用set做 hashmap的size是总的键值数,就算hash相同,put的时候,size也会++
问题出在所有数字都不相同。你的哈希只是保证了只有一个。比如 1 1 2 2这个数组,按照题目意思应该是0,也就是1和2都是有重复的。但是按照你的写法就是2.
为什么不直接用set集合,然后返回集合长度。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,欢迎您加入CSDN
问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y