问题标签 [floyd-cycle-finding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
6271 浏览

python - 未知来源检测周期

如何检测无限序列中的重复数字?我尝试了Floyd & Brent检测算法,但一无所获……我有一个生成器,它产生的数字范围从 0 到 9(含),我必须识别其中的一个句点。

示例测试用例:

0 投票
3 回答
804 浏览

algorithm - 不同步长的 Floyd 环路检测算法

链表中的Floyd 循环检测算法中,我们一般将慢指针加 1 个单位,快指针加 2 个单位。我们可以使用哪些其他值来增加慢速和快速指针,它们如何改变算法的复杂性?

0 投票
2 回答
1054 浏览

algorithm - Floyd 的循环查找算法 - 需要两个指针吗?

我今天正在查看弗洛伊德的循环查找算法,并且有一个疑问。为什么他需要两个指针并以不同的速度移动它们?

相反,他可以创建两个指针,保持一个静态并将它的指针与另一个指针进行比较,然后递增?我的意思是即使这样也会导致找到周期,对吗?

0 投票
3 回答
2661 浏览

algorithm - 链表循环 - 循环开始元素和列表长度

我读到了链表检测算法中的循环 ,我怀疑

1)如何检测“会议元素”。例如,在以下情况下 - 如何检测会议在第三个元素?

在此处输入图像描述

2)如何检测列表的长度(以上情况 - 6)

运行时间 O(n) 和内存 O(1)中的两个问题。

0 投票
1 回答
382 浏览

java - 我对弗洛伊德循环检测算法的实现不正确吗?

我有以下代码用于检测链表中的循环:

这段代码运行良好,直到我实际开始检测循环开始的部分,我在代码中对此进行了注释。不知何故,这陷入了无限循环。

我怀疑这在某种程度上与 Java 中的引用传递有关?我是否在更新head检测循环时引用的值?我真的没有想法。请帮忙!

0 投票
3 回答
1139 浏览

c++ - 弗洛伊德的寻环算法何时会失败?

我收到一个关于弗洛伊德循环寻找算法的面试问题:

弗洛伊德的寻环算法何时会失败?

我的意思是,是否有规则可以找到快速指针和慢速指针之间的步长?

0 投票
3 回答
2689 浏览

algorithm - 弗洛伊德在链表中寻找循环的算法,如何证明它永远有效

我了解 Floyd 循环检测算法的概念。得出的结论是,如果乌龟的行进速度是兔子的两倍,并且如果乌龟在一个循环中领先 k 米,那么乌龟和兔子将在循环之前遇到 k 米。

在单链表的情况下,指针 A 的移动速度是指针 B 的两倍。这意味着如果指针 B 需要 k 步才能到达循环的入口点(我们还不知道它在哪里),指针A 在循环内已经有 k 个节点的领先优势。因此,两个指针将在循环的入口点之前遇到 k 个节点。因此,如果我们将指针 B 移回头指针并将指针 A 保持在交汇点(现在两个指针都离入口点有 k 个节点),并以相同的速度移动,它们将在入口点相遇循环。

您如何证明该算法将在以下边界情况下工作?

  1. 最后一个节点循环回头部的链表。在这种情况下,起始值 k 是多少?
  2. 一个超长的链表,1000个节点,最后有一个小循环,3个节点。指针 A 将领先 1000,这意味着当指针 B 到达循环的入口点时,A 已经循环了很多次。
  3. 如果有 1 个节点的循环怎么办?

这不是家庭作业。一位面试官告诉我,如果我有一个小循环,这个算法将无法工作。他没有解释原因。

0 投票
2 回答
578 浏览

c - 如何从链接列表中删除循环

例如,如果链接列表是这样的:

1->2->3->4->5->6->7->8->9->4

我们可以使用弗洛伊德循环算法找到循环,但是在这种情况下如何去除循环呢?

0 投票
0 回答
188 浏览

algorithm - Floyd 的寻环算法

我阅读的有关该主题的所有文档都以循环外的起点解释了该算法。

如果我的链表只是一个巨大的循环,而我的起点就在中间呢???算法将如何处理?

乌龟和兔子肯定会在周期的某个时间点相遇,但起点将如何确定?由于整个列表是一个循环,因此没有真正的起点......

谢谢

0 投票
2 回答
294 浏览

c++ - Floyd 算法 - 循环检测 - 示例不终止

]![链表 有人可以用这个例子解释弗洛伊德算法吗?它对我来说并没有终止,算法实现是否完整?

我的代码有问题吗?代码如下:

画的不好请见谅!