算法
文章平均质量分 58
梦想是大毕改
你可以在别人那里汉取某些思想,但必须用你自己的方式加以思考,在你的模子里铸成你思想的砂型。
威利斯•尤金•兰姆
展开
-
力扣-202. 快乐数解析-弗洛伊德循环查找算法
归纳一下这些简单数字就可以发现,对于任意一个非快乐数,最终会进入重复循环, ···不难发现,4即之后的结果就是新一轮循环。那么我的第一个做法是检测4出现的次数 如果4出现次数超过两次, 那么就不是快乐数。其实这为弗洛伊德查找算法提供了很好的条件。使用代码测试一下每一代数字。当测试用例为2这个数字的时候。弗洛伊德查找算法原理见。原创 2024-01-19 20:57:46 · 531 阅读 · 1 评论 -
弗洛伊德循环查找算法-原理
弗洛伊德循环查找算法中第二次相遇的地方就是循环的起始点,这个性质的证明是基于数学的原理。设链表起点到环的起始点的距离为 X,环的起始点到第一次相遇点的距离为 Y,第一次相遇点到环的起始点的距离为Z。也就是说,如果此时将慢指针重新指向链表起始点,慢指针再次移动 X 的距离,而快指针从第一次相遇点开始移动 C3l+Z 的距离,它们将会在环的起始点再次相遇。这个性质是弗洛伊德循环查找算法的关键之一,也是该算法能够正确找到环的起始点的原因。2. 由于快指针的速度是慢指针的两倍,所以快指针走的距离是慢指针的两倍。原创 2024-01-19 00:11:44 · 450 阅读 · 1 评论