leetcode top100-01

发布时间 2023-03-31 00:01:42作者: 积极向上的徐先生

最好能说明一下为什么不怕重复。看评论里有很多人提出这个问题,说hash冲突。 我在这里解答一下这个问题。

1.每次写入时,判断条件 不是当前的key本身存不存在,而是key和 tag 之间的差值存不存在,这一点很重要。
2.题目命题说明了一点,假定只有一个解。也就是说重复元素再多都无所谓
case 1:如果有3个或者以上的重复元素,代表这个重复元素不可能是解,所以写入map的时候直接覆盖也无所谓;
case2:如果只有两个重复元素,同样的道理,假如这个重复元素是解,那么必定是两个重复元素的和等于tag。
这种情况下,当遇到第二个重复元素时,不会写入map,这个时候直接已经取到解了。
所以这种方式,不用考虑hash冲突的问题。