Also known as **Floyd's Cycle-Finding Algorithm**. This is a specific version of the Two Pointers pattern where one pointer (The Hare) moves faster than the other (The Tortoise). It is the most famous solution for Circular Linked Lists.
If you move the 'Fast' pointer 2 steps for every 1 step the 'Slow' pointer takes, then when the Fast pointer hits the end, the Slow pointer will be at the **Exact Middle**. This is a common trick used before performing a Merge Sort on a Linked List.
As discussed in the Linked List module, this pattern is the primary way to detect "Loops" in a data structure using O(1) space. If the Hare ever 'laps' the Tortoise, you have a cycle.
Q: "Can you use this pattern on an Array?"
Architect Answer: "Yes! This is exactly how you solve the **'Find the Duplicate Number'** problem where each number represents an index for the next jump. If there is a duplicate number, jumping through the array will eventually lead you into a cycle. The Hare and Tortoise will meet, and you can then find the start of the cycle, which is the duplicate number."