Wednesday, 11 June 2025

Python Coding challenge - Day 543| What is the output of the following Python Code?

 


Code Explanation:

Function Purpose
def has_cycle(nums):
This function checks whether there is a cycle in a list of numbers.
It uses the Floyd’s Cycle Detection Algorithm (also known as Tortoise and Hare) to detect cycles without extra space.

Initialize Pointers
    slow = fast = 0
Two pointers, slow and fast, are both initialized at index 0.
slow will move one step at a time, while fast moves two steps.
The idea is: if there is a cycle, slow and fast will eventually meet inside the cycle.

Loop to Traverse the List
    while fast < len(nums) and nums[fast] < len(nums):
The loop continues as long as:
fast is a valid index (< len(nums))
nums[fast] is also a valid index (we’re using it as a pointer too)
This prevents index out of range errors when accessing nums[nums[fast]].

Move Pointers
        slow = nums[slow]
        fast = nums[nums[fast]]
slow = nums[slow] → move slow pointer one step forward.

fast = nums[nums[fast]] → move fast pointer two steps forward.
This simulates two pointers moving at different speeds through the list.

Cycle Detection Condition
        if slow == fast:
            return True
If at any point slow and fast pointers meet, a cycle is detected.
In a cycle, fast-moving and slow-moving pointers will eventually catch up.

No Cycle Case
    return False
If the loop exits without the pointers meeting, there’s no cycle in the list.

Function Call and Output
print(has_cycle([1, 2, 3, 4, 2]))
The list is:
Index → Value
0 → 1, 1 → 2, 2 → 3, 3 → 4, 4 → 2
This forms a cycle: 2 → 3 → 4 → 2...
Pointers will move like this:
slow = 0 → 1 → 2 → 3
fast = 0 → 2 → 4 → 3 → 2
At some point, slow == fast == 2, so:

Output:
True

0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (118) AI (152) Android (25) AngularJS (1) Api (6) Assembly Language (2) aws (27) Azure (8) BI (10) Books (251) Bootcamp (1) C (78) C# (12) C++ (83) Course (84) Coursera (298) Cybersecurity (28) Data Analysis (24) Data Analytics (16) data management (15) Data Science (217) Data Strucures (13) Deep Learning (68) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (7) Excel (17) Finance (9) flask (3) flutter (1) FPL (17) Generative AI (47) Git (6) Google (47) Hadoop (3) HTML Quiz (1) HTML&CSS (48) IBM (41) IoT (3) IS (25) Java (99) Leet Code (4) Machine Learning (186) Meta (24) MICHIGAN (5) microsoft (9) Nvidia (8) Pandas (11) PHP (20) Projects (32) Python (1218) Python Coding Challenge (884) Python Quiz (342) Python Tips (5) Questions (2) R (72) React (7) Scripting (3) security (4) Selenium Webdriver (4) Software (19) SQL (45) Udemy (17) UX Research (1) web application (11) Web development (7) web scraping (3)

Followers

Python Coding for Kids ( Free Demo for Everyone)