L14. Detect a loop or cycle in LinkedList | With proof and Intuition
Vložit
- čas přidán 28. 11. 2023
- Problem Link: tinyurl.com/3rxwup5c
Entire LL Sheet: takeuforward.org/linked-list/...
Check our A2Z DSA Course: takeuforward.org/strivers-a2z...
Please do give us a like, and subscribe to us if you are new to our channel.
Do follow us on our socials: linktr.ee/takeuforward
No one even in paid courses also give the intuition behind the algorithms like you did Sir. You could have earned millions by paid courses but instead you chose to contribute for the greater well of the society. Hats off!
bro , i am with you in all of your debate , still he is earning heavily due to yt , maybe not particularly this video with 53k views at this point but he has videos with million views too
@@sakshammisra189 Yes. But he is not only earning money. He is earning prayers and blessings of millions of students like us. He is helping even foreign countries students as you won't see much videos from them. Indian CZcamsrs took teaching to the next level through CZcams.Thousands of us will get inspired to contribute like him when we become successful and have the opportunity. That's how he is shaping our minds.
Whole NIT and IIT follows you ♥, hats off
Bro I am in IIIT-Kottayam we also follow not just IIT and Nit🙂
@@AdityaGupta-cx1ej well, he did not say "only" NITs and IITs follow him, did he ?
Knew this algorithm but came here to learn the proof ❤ And guess what Striver Bhaiyaa never disappoints ❤
The whole video is 10/10 but the intuition part is 1000/10. Just Striver things 🔥
The intuition part!🤌💯
Hands down the best explanation I have seen in so many year's , I am forever grateful for such beautiful intuition and explanation
Bro , i write my own bro by seeing your explanation ❤️
You are my God bro 🫂
I am so glad i found this channel.The Best!
the best dsa course. i can code myself after the intuition.explanaton is crystal clear
18:25 That's the reason why I preferred Striver's DSA playlist
Wonderful explanation striver!!! You are really doing an incredible job!!
Understood, thanks striver for this amazing video.
This is real teaching!
the best explanation on the internet.
Many many Thanks for your effort Bhaiyaa ❤ you are in those teacher's of my life which i can never forger in my life❤💯
🙌 Loved the way you explained the problem solution and intuition .
Thank you very much .
big hats off for the intuition part!!!🙌❤❤
Hi,
Remember one thing slow and fast pointer will always meet if the ratio b/w speed of slow and fast pointer is greater than 1. There ratio can be in decimal also , But if you want them to meet fast in the loop then optimal speed will be slow = 1 and fast = 2.
But if the two pointers move like slow = 3 and fast = 5 then they also meet. It will take multiple cyle but they will eventually meet.
Striver bhaiya linked list ki sbhi videos jldi se upload kr do , next month interview bhi h😇
All the best brother 🎉
how did it go?
@@shreyxnsh.14 It was ok
Awesome content Sir......
Thankyou Sir for teaching us real problem solving.
Man you're a GENIUS !!!
Best DSA in YT
you are great sir ! loads of love
❤
very well explained
Dek raha ha Binod Kitna easy hota ha DSA.....
Awesome Explanation!
Great Striver🤩🤩
A great explanation bro....... ❤
wish i could give you 1000 likes at once. Great explaination.
You are the best!!
Understood, thank you.
great way to explain why fast and slow ptointers will collide definitely..🙅
Thanks striver
thanks for telling us the why 😁
Understood 😊
Thank you bhaiya
If you still confused in H T approach then
Imagine, the distance between Hare and Tortoise is 5m.
So according to logic we move Tortoise by 1, the distance will be 5m and Hare by 2.
So them the overall distance will be 6-2 =4m
Our distance got reduced by 4m
And if you keep continuing the approach eventually our distance will be zero
And the same approach might work in 3. Bit it's depend on luck
Like 5+1 = 6. Then 6-3 = 3m
Again, 3+1= 4. Them 4-3 = 1m
Again, 1-1 = 2. Them 2-3 = -1 m
Overlapping.....
Understood✅🔥🔥
Thank you so much!!
thank you
Thx sir ,can u pls bring string playlist sir pls pls pls😅😅 i m excited for it...
thanks bhai❤
Is it necessary to increase the fast pointer only by 2? What if we increased it by 3 or 4? Will it still meet the slow pointer?
Thanks A Lot
Understood
Thanks
Understood
😇
GOD OF DSA->STRIVER
Can we also use unordered_set instead of map?
Understooood
thanks bro
Understood!
17:44 correction if we move slow by 1 and fast by 2,3,4,5 etc we still collide and get the answer i ve prove it if you want you can increment fast by >=2 by having the appropriate while check
so that means what he said is wrong?
3,4,5 wont work if the list has just 2 elements
@@shreyxnsh.14 kind of yes or we can say that he hasnt explored about that…
understood
Or we can also say, if fast->next == slow return true; to optimize by one step.
Understood!!
understood!
Thank you !🌄
While putting the condition fast!=NULL should come before fast->next != NULL,if you do vice versa then it will show pointer error
relative motion yaad agaya
❤
👍
underestood
Time Complexity of this ?
what if the length of LL is 1 or 2?? will this code throw a error??
13:40 will know the intuition behind why slow and fast pointer will meet
In your old website you given those links but now what you have given in your link is not good videos
Why not use a set instead of map?
undersood
Striver only had one issue that could be heard from a few that his lectures are not beginer friendly.
Now that's all the past , it is settled. This is BEST content to exist for all the STRIVERS out there to learn dsa period.! No matter how much dsa u have done earlier even if u r a beginer the A2Z sheet is hands down the best+
When we will move slow by 1 and fast by 3..then also they will collide....Yrr I don't understand why we are moving slow by 1 and fast by 2..pls anyone can help???
ListNode* temp = head;
int i = 0;
while(temp){
if(temp && temp->val == INT_MAX) return true;
temp->val = INT_MAX;
temp = temp->next;
}
return false;
Can this be a solution??? can i tell this to the interviwer ?
while(fast !=null){
fast = fast->next;
fast = fast -> next;
slow = slow ->next;
If(fast->next == slow) return true;
}
return false;
instead of using fast->next 2 times you can simply write fast->next->next :)
@@VIJAYSHARMA-dh6vo I know :). But my intention was to make it more obvious that fast is taking two steps when slow just takes one. Also I wanted to avoid that extra ugly check in while, ie, && fast->next->next != null (just a personal preference.)
US
More efficient time and space complexity solution
bool hasCycle(ListNode *head)
{
if(head==NULL || head->next==NULL)return false;
ListNode*temp=head;
while(temp)
{
if(temp->val==1e8)return true;
temp->val=1e8;
temp=temp->next;
}
return false;
}
Your explanation is op
💥💥💥💥💥💥💥💥💥💥💥💥💥💥💥💥💥💥💥💥💥💥
💥
❤🩹
us
please use some hindi words please so that north indian student understand easily
Understood
US
Understood
Understood
Understood
Understood
Understood
Understood