LeetCode第287题 寻找重复数(快指针比慢指针可能不止多走一圈)(Java)
题目出处
这一题的标准解法是用快慢指针,没错,就是快慢指针。在这里记录一下我的解题历程。
一开始我和评论区的快指针比慢指针只多走一圈的想法一致,但是没有证明,所以我打算先以这个命题为基础,看看题目能不能解出来。
根据题目条件,可以归为链表问题,即数组中的每一个数存储的都是下一个数的索引,由于有重复元素,加上题目所给的数组中元素的取值,所以构成的链表最终一定会在某处结成一个环,这就导致快指针一定是可以追到慢指针的。然而难点在于如何找到环的入口位置,也即重复元素。这个问题可以用画图来解释:
所以,当快指针追上
原创
2020-07-06 21:35:52 ·
161 阅读 ·
0 评论