Jump Game (LeetCode 55) | Full solution with animations and visuals | Greedy Algorithms
Actual problem on LeetCode: leetcode.com/problems/jump-ga...
Chapters:
00:00 - Intro
00:45 - Problem statement and description
04:13 - Brute Force/Recursion/Dynamic Programming
07:57 - A simple test case
09:17 - Greedy Efficient Approach
15:26 - Dry-run of Code
17:38 - Final Thoughts
📚 Links to topics I talk about in the video:
Greedy Algorithmic Paradigm: • Greedy Algorithms with...
Problems on Arrays: • Arrays
Other Medium Difficulty Problems: • Medium Problems
📘 A text based explanation is available at: studyalgorithms.com
Code on Github: github.com/nikoo28/java-solut...
Test-cases on Github: github.com/nikoo28/java-solut...
📖 Reference Books:
Starting Learn to Code: amzn.to/36pU0JO
Favorite book to understand algorithms: amzn.to/39w3YLS
Favorite book for data structures: amzn.to/3oAVBTk
Get started for interview preparation: amzn.to/39ysbkJ
🔗 To see more videos like this, you can show your support on: www.buymeacoffee.com/studyalg...
🎥 My Recording Gear:
Recording Light: amzn.to/3pAqh8O
Microphone: amzn.to/2MCX7qU
Recording Camera: amzn.to/3alg9Ky
Tablet to sketch and draw: amzn.to/3pM6Bi4
Surface Pen: amzn.to/3pv6tTs
Laptop to edit videos: amzn.to/2LYpMqn
💻 Get Social 💻
Follow on Facebook at: / studyalgos
Subscribe to RSS feeds: studyalgorithms.com/feed/
Join fan mail: eepurl.com/g9Dadv
#leetcode #programming #interview
Пікірлер: 86
This is actually a very good explanation. I was able to understand because of the dry-run of the code. Thanks a lot.
Your solutions and explanations are great!! thank you
your explanation is great. I have tried many dsa channels to follow. Then I find this channel. It is so great and underrated.
For this problem i seen many videos, but this one was crystal clear and i never forget. Very Good Job Sir.
@nikoo28
8 ай бұрын
So nice of you
watching your video for the first time, really liked your explanation. Would watch more of your videos :) thanks!
@nikoo28
9 ай бұрын
Glad you like them!
I watched so many videos n i could not understand the problem , after watching your video i finally understood it🥺🔥 the visualisation helped alot to understand
your explanation was very simple. made me understand the problem.
fantastic brilliant,explanation sir,you deserve a lot
this is a gem of a video.
Very nice explanation, thanks, keep it up :)
Just Wow... I understand after watching first time this video.
underrated channel
really helpful. Thanks a lot!
thank u sir ... for such a great explanation❣❣
Awesome explanation 🔥
your explanation is super
Dry run really helped! thanks a tonne!
@nikoo28
9 ай бұрын
Great to hear!
Hi Sir, You are gem. I am learning from you a lot. Thanks, Sir for this Help.
@nikoo28
11 ай бұрын
It's my pleasure
Thank you for your work!
@nikoo28
7 ай бұрын
My pleasure!
Sir I am big fan of your leetcode playlist, Regularly folllowing it ,Please continue doing more videos on leetcode ,Waiting for more Leetcode problems ❤
@nikoo28
11 ай бұрын
i am adding more and more problems when I get time. Trying to cover important problems first :)
@ABDULKALAM-ig2dd
11 ай бұрын
@@nikoo28 🤍
i like how you explain with Animation
thats the video i was searching exactly
Thank you, you helped me so much!
@nikoo28
8 ай бұрын
You're very welcome!
Nice explaination, Thank you
@nikoo28
3 ай бұрын
You are welcome
Best explanation ever
very nice and clear explanation thanks !!!
@nikoo28
6 ай бұрын
Glad it was helpful!
Super useful.💯
Cool explanation bhai...and an advice...keep content concise and outro subtle
@nikoo28
5 ай бұрын
i try my best, but everyone has their own learning pace. for quick learners, i have chapter markers for faster navigation 😄
Very good explaination!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Thanks a ton
Great Video
sir your explaination is awesome... keep uploading more videos.
@nikoo28
10 ай бұрын
thanks for your feedback, keep watching :)
thankyou so much sir its too good
I'm fan of ur way of teaching I learnt trees because of u Hope you start dp playlist like trees please ♥️😇
@arslanmuhammad4190
11 ай бұрын
He is great.
@nikoo28
11 ай бұрын
So nice of you
Nice content
Thanks
Best one
Incredible presentation as always. Would love to have you do a problem solving mindset tips and tricks.
@nikoo28
10 ай бұрын
that is a really great idea, I will add it to my pipeline of upcoming videos
Got itt👍
brilliant
could you please create a video for leetcode 2483?
class Solution { public: bool canJump(vector& nums) { int n=nums.size(); int maxJump=0; for(int i=0;imaxJump) return false; maxJump = max(maxJump,i+nums[i]); if(i>=n-1) return true; } return false; } };
outstanding explination plz try to do playlist for DP ur explination is 🥳
@nikoo28
9 ай бұрын
I have a playlist on DP. Constantly adding more and more problems to it: kzread.info/head/PLFdAYMIVJQHPXtFM_9mpwwQtIdzP6kxHS
amazing explanation, love the video. this is my algorithm before watching ur video, it only passed 120/170 test cases when i tried to submit it. So i just wanted to know if my approach to this question is definitely incorrect. class Solution { public boolean canJump(int[] nums) { int size = nums.length-1; int sum = 0; for (int i=0; i sum += nums[i]; } if (sum-(nums.length-2)>= size){ return true; } else if (nums[0]>= nums.length-1){ return true; } else{ return false; } } } again, thx for the video
i really hate kind of videos which doesnt tells the intuition why we are doing so.....there are many videos avl for this pblm and many of them are just doing the dry run of the code without telling the intuition behind their though process.... But i am really thanks to you sir that you focused more on the intuition behind the code and have not just done the dry run 😌😌
@nikoo28
5 ай бұрын
glad you liked it
With this approach, we never stop on the 0’s right? We are checking if somehow we are able to bypass
@nikoo28
3 ай бұрын
Yes
Take a value and show it by dry run so we understand a bit more Thanks
i understand from u
Why we are calling optimal solution as greedy algorithm ? My perspective : If I see it, we have optimized our Iterative DP (Tabulation) by going to every index from last to first and asking if i can reach target or not.
Okay so, I don't usually comment but yeah this video was great.
@nikoo28
7 ай бұрын
Thank you so much
Bhai quality explaintaion h apka great baki KZread channel toh bs code padh dete h intuition toh batate v nhi h
@nikoo28
9 ай бұрын
i like to focus on the problem solving, rather than the language. Languages will come and go. 😅, logic will stay
Its O(N**2) ?? Can anyone explain in case of DP
@nikoo28
4 ай бұрын
why do you want a solution with a poor time complexity?
You could have used your Jump Game 2 solution here. Both problems are almost same.
Please add your chair also in your Recording Gear? Did you buy it from amazon ?
@nikoo28
7 ай бұрын
Links in the description :)
@amitshukla2268
7 ай бұрын
@@nikoo28 i didn't find it.
@nikoo28
5 ай бұрын
Chair is from Autonomous.
You're basically looking for the last reachable index at each iteration. That is not a greedy approach. Can you explain what do you mean by greedy approach?
@nikoo28
4 ай бұрын
My greed is that I want to reach the last pointer from where I am standing
Hi.. Thanks for the vide, your explanation is really good and helpful. But I do have doubt here and a request while explaining , pls consider the code also . I feel like the explanation and the dry run code somewhere I am unable to understabnd(may be I need more practice but still..) Example-> while explaining you said to go back step from 1 , that is 0, you cant reach the destination => agree but in dry run code-> idx+nums[idx] , how are you bringing these terms, like how did you think its should be in this way , its like idx=7,nums[7]=0 and you are adding both 7+0=7, so i am not getting how your idea is to add idx+nums[idex].
@nikoo28
2 ай бұрын
If you have understood the explanation, try to write the code on your own. That is the only way you will learn. If everything else fails, only then refer to someone else’s code.
@subhashreesahoo5760
2 ай бұрын
@@nikoo28 ok sure, Thank you, I will take your advice and implement the same.
What if the second last element is zero? Let's dry run the provided array [3, 2, 1, 0, 4] through the given canJump method: Dry run: Initial State: lastElement = 4 (index of the last element). Iteration 1 (i = 3): i + nums[i] = 3 + 0 >= 4, which is less than lastElement. No update. Iteration 2 (i = 2): i + nums[i] = 2 + 1 >= 4, which is less than lastElement. No update Iteration 3 (i = 1): i + nums[i] = 1 + 2 >= 4, which is less than lastElement. No update Iteration 4 (i = 0): i + nums[i] = 0 + 3 >= 4, which is less than lastElement. No update Return: lastElement == 0, which is true. So, for the array [3, 2, 1, 0, 4], the canJump method returns true, indicating that it is possible to jump from the first element to the last element. Please explain I'm not able to understand the false case?
@nikoo28
5 ай бұрын
you need to start from the last element, not the first one. watch the explanation that starts at 9:17
i actually tried this code and come across a wrong ans for [1] as it is reachable at any cost so i run the loop from nums.length -1 to 0 and that worked.... and thank you for this amazing solution i stuck on this for 3 hrs straight...