This video's explanation was fantastic! I had a hard time grasping the concept of coverage before watching it, but your clear explanation and use of animations really helped me understand. The solution you presented visually, with both drawings and animations, made it much easier to follow along and almost had me solve the problem myself by the end. Thanks for such a well-done video! 🖊
Man!!! Hands down!!! You teach reallly well. The explanation was crystal clear. Even for the recursive brute force approach, your explanation was precise. Love it. Keep doing❤❤ Till date i find recursion very confusing. Please start a recursion playlist. The way you teach is very amazing. Gets right into the head. Would love to learn recursion from you.
Whenever I get stuck with a question, your videos always come to the rescue with clear and concise explanations. Your content has been a game-changer for my learning journey. Keep uploading more and more such tutorials.
I like how you explained how to solve this with the greedy approach you have taken. The way you explain with images is really great. Thanks! I am experiencing a lot of difficulty reaching the solution. More than the coding, it's finding the solution that I am really struggling with. The approach I took for this case is consider the base case and move backwards. Somehow, I find it very difficult to find my way through it. I got very confused from that stage; I considered the recursive approach but did not have a clear picture in my mind how I was going to solve it. Then again, sometimes, I come across a problem where I literally do it with much less effort. I'm not sure if it's just me but I find myself unable to find the approach to solving the problem. Once I find the approach, the coding side is easy. I don't know - that's just me. Struggling but trying! :( Thanks for sharing.
I totally understand you. What you are experiencing is just a part of the coding journey. Always remember that it gets tough before it starts to get simpler. Just like you go on a hike...the start is very easy...then you begin to get tired, and it is hard to carry along. Once you cross that hurdle, the rest of the trek becomes enjoyable. :)
after ...coverage = max(coverage, i+arr[i]), add this if condition if(i>=coverage) return -1;// if you encounter any zero in between this edge case will help i.e., for test case: 3 2 1 0 5 code: int minJumps(vector &arr,int n) { // Write your code here. int totalJumps=0; int destination=n-1; int coverage=0; int lastJumpInd=0; if(n==1) return 0; for(int i=0;i=coverage) return -1; if(i==lastJumpInd){ lastJumpInd=coverage; totalJumps++; if(coverage>=destination) return totalJumps; } } return totalJumps; }
Somehow, I had to replace coverage at the last if statemant with lastjumpInx because otherwise one jump was always missing: if(lastJumpIndx >= destination){ return totalJumps }
as you solve more and more problems you will be able to narrow down some patterns. When starting any new problem, you will then try to get started with those known methods first. sometimes along the way, you will tweak them and discover new methods
thank you so much exellent explanation and i have a small doubt there is a issue with your code if(coverage>+destination){ return total_jumps; } from above part of code you are returning without incerements total_jumps for last window i think and also there is a case entire window of elements is 0 then cant go the last_index right?
in leetcode there's a line which says "The test cases are generated such that you can reach nums[n - 1]". Means there will always be a way to reach the last index. So all 0 test cases won't be there. But it can be solved by putting checks for 0.
Does the greed criteria say that choose the element with the max value from i till i+nums[i ] ? e.g 2,1,4,1,3,1,1,2 . for i =0 , nums[0 ] = 2, We choose 4 from 1,4. After that for i becomes 2 and for nums[2 ] = 4 we have options 1,3,1,1 and we chose max which is 3 and then reach in 3 min steps till the end. ?
every greed criteria will not give you the optimal solution. first we need to prove that the greed criteria we choose leads to an optimal solution. czcams.com/video/3H2G3KuEiRU/video.html
i have a doubt in if part that if take coverage as max at index 0 then we will reach at index 2 right which represents 1 at index 2 then if it is 1 then we can't choose 4 at index 1. Can anyone explain me that?? please help
could you just check in the if condition where coverage>=destination at the place of coverage it will be lastIndex because if we return totalJumps without traversing till the lastIndex it will give wrong answer
I have an edge case - [ 2,16,1,2,3,1,1,2 ] here when i=1 coverage will be > destination hence return totaljumps which is 1 because i!=lastjump. but coverage>=destination so 1 will be returned but correct ans is 2 jumps because from 2->16->destination I am wrong ???
sir this code is not working it gives the wrong test cases in leetcode test case:[2,3,1,1,4] Output 1 Expected 2 .........code...... class Solution { public: int jump(vector& nums) { int jumps=0; int n=nums.size(); int coverage=0; int lastJump=0; int destination=n-1; if(n==1) return 0; for(int i=0;i=destination) { return jumps; } } return jumps;
Its perfectly working fine.If condition should be placed as shown below if(i==nextInterval){ nextInterval = coverage; jumps++; if(coverage >= target ){ return jumps; } }
@@piyushanand3451i just verified. With my solution, the output is 2 as expected. Added a test case too to confirm. Look at the video description for the file. Make sure you are implementing it correctly :)
Don’t stop what your doing. You’re amazing and i learn so much from you
great explanation, easy to understand with your graphical representation. Keep doing what you're doing.
To the point explanation. Thanks!
This video's explanation was fantastic! I had a hard time grasping the concept of coverage before watching it, but your clear explanation and use of animations really helped me understand. The solution you presented visually, with both drawings and animations, made it much easier to follow along and almost had me solve the problem myself by the end. Thanks for such a well-done video! 🖊
your videos truly are helping me understand DSA so well! Keep it up
good luck 😇
Man!!! Hands down!!! You teach reallly well. The explanation was crystal clear. Even for the recursive brute force approach, your explanation was precise. Love it. Keep doing❤❤ Till date i find recursion very confusing. Please start a recursion playlist. The way you teach is very amazing. Gets right into the head. Would love to learn recursion from you.
man you are so good, wish you all the best, all the love from Palestine
great explanation Bhai! I watched the video so many times to get it. Finally was able to get the idea and solve it...Thanks for a thoughtful vid! :)
excellent explanation 👌This is my first video on your channel, really loved the explanation. Subscribing !!
Thanks and welcome
literally the best explanation ever!
great explanation!
Whenever I get stuck with a question, your videos always come to the rescue with clear and concise explanations. Your content has been a game-changer for my learning journey. Keep uploading more and more such tutorials.
will try my best to keep bringing useful content
+1
You explain so clearly
Keep Going and Keep Posting
it's my first watch on your channel....u explains so good that i am subscribing you...and thank you soo much for educating us...
thanks for the sub :)
Great explanation!
great explaination !! u are too good
sir i dont know how but your solution help me to understand the problem very easy
ur soln for each problem is unique and easy to understand
Awsm explanation man
Literally the best one
Excellent work 🎉
Awesome explanation sir
Great man
badiya samjhaya
Thanks!
simple and good
nice explanation
thanks brother
Thanks
better than neetcode....for this soln presentation...thanku
Very good explanation sir
Thanks and welcome
I like how you explained how to solve this with the greedy approach you have taken. The way you explain with images is really great. Thanks! I am experiencing a lot of difficulty reaching the solution. More than the coding, it's finding the solution that I am really struggling with. The approach I took for this case is consider the base case and move backwards. Somehow, I find it very difficult to find my way through it. I got very confused from that stage; I considered the recursive approach but did not have a clear picture in my mind how I was going to solve it.
Then again, sometimes, I come across a problem where I literally do it with much less effort. I'm not sure if it's just me but I find myself unable to find the approach to solving the problem. Once I find the approach, the coding side is easy. I don't know - that's just me. Struggling but trying! :(
Thanks for sharing.
I totally understand you. What you are experiencing is just a part of the coding journey. Always remember that it gets tough before it starts to get simpler. Just like you go on a hike...the start is very easy...then you begin to get tired, and it is hard to carry along. Once you cross that hurdle, the rest of the trek becomes enjoyable. :)
Keep doing what you are doing...as long as you are trying to write the solutions on your own rather than just copying the code, you will succeed :)
beautiful beautiful
after ...coverage = max(coverage, i+arr[i]), add this if condition
if(i>=coverage) return -1;// if you encounter any zero in between this edge case will help i.e.,
for test case: 3 2 1 0 5
code:
int minJumps(vector &arr,int n)
{
// Write your code here.
int totalJumps=0;
int destination=n-1;
int coverage=0;
int lastJumpInd=0;
if(n==1)
return 0;
for(int i=0;i=coverage)
return -1;
if(i==lastJumpInd){
lastJumpInd=coverage;
totalJumps++;
if(coverage>=destination)
return totalJumps;
}
}
return totalJumps;
}
Somehow, I had to replace coverage at the last if statemant with lastjumpInx because otherwise one jump was always missing: if(lastJumpIndx >= destination){
return totalJumps
}
your code works perfectly on leetcode but not working on gfg, by the way great explanation
you may have to tweak it a little for the different problem constraints.
thanks for the helpful videos, what is the app name you use in your iPad to write and explain things?
GoodNotes 6
Bhaiya in this code it would be
if (lastIndex >= destination) {
return totalJumps;
}
not Coverage>=destination
amz explanation
how to come up with such a greedy criteria, I mean what would be the thought process for a similar problem
as you solve more and more problems you will be able to narrow down some patterns. When starting any new problem, you will then try to get started with those known methods first.
sometimes along the way, you will tweak them and discover new methods
thank you so much exellent explanation and i have a small doubt there is a issue with your code
if(coverage>+destination){
return total_jumps;
}
from above part of code you are returning without incerements total_jumps for last window i think and also there is a case entire window of elements is 0 then cant go the last_index right?
in leetcode there's a line which says "The test cases are generated such that you can reach nums[n - 1]". Means there will always be a way to reach the last index. So all 0 test cases won't be there. But it can be solved by putting checks for 0.
absolutely correct
Sir please make a playlist on advance recursion
will do
I felt understanding coverage little tricky.
what part did you face a problem with?
Does the greed criteria say that choose the element with the max value from i till i+nums[i ] ? e.g 2,1,4,1,3,1,1,2 . for i =0 , nums[0 ] = 2, We choose 4 from 1,4. After that for i becomes 2 and for nums[2 ] = 4 we have options 1,3,1,1 and we chose max which is 3 and then reach in 3 min steps till the end. ?
every greed criteria will not give you the optimal solution. first we need to prove that the greed criteria we choose leads to an optimal solution. czcams.com/video/3H2G3KuEiRU/video.html
i have a doubt in if part that if take coverage as max at index 0 then we will reach at index 2 right which represents 1 at index 2 then if it is 1 then we can't choose 4 at index 1. Can anyone explain me that?? please help
Can you please elaborate on the doubt you have. I got confused
could you just check in the if condition where coverage>=destination
at the place of coverage it will be lastIndex because if we return totalJumps without traversing till the lastIndex it will give wrong answer
right
yes before returning total_jumps need to increment
I have an edge case - [ 2,16,1,2,3,1,1,2 ] here when i=1 coverage will be > destination hence return totaljumps which is 1 because i!=lastjump. but coverage>=destination so 1 will be returned but correct ans is 2 jumps because from 2->16->destination
I am wrong ???
check the problem constraints on the actual problem page :)
why we are using
if(i==lastjumpindex)
lastjumpindex= coverage;
jumps++;
can anyone explain?
did you follow the explanation? please don't jump straight to the code portion.
💥💥💥💥💥💥💥💥❤❤❤❤❤❤
sir this code is not working it gives the wrong test cases in leetcode
test case:[2,3,1,1,4]
Output
1
Expected
2
.........code......
class Solution {
public:
int jump(vector& nums) {
int jumps=0;
int n=nums.size();
int coverage=0;
int lastJump=0;
int destination=n-1;
if(n==1) return 0;
for(int i=0;i=destination)
{
return jumps;
}
}
return jumps;
}
};
you will need to debug the test case
its failing for [2,3,1,1,4].
What answer are you expecting ?
There was few errors in your code but anyways nice explanation.
What errors did you find?
code is wrong it will always give one jump less than required jumps please check
did you try the code in the video description? it works perfectly on leetcode
@@nikoo28i got the answer already myself but thank u just need to replace coverage with lastjumpindex in last condition
@@nihal6636 thank u!
Great explanation, but, the case for when the destination cannot be reached we should return -1 is not covered
if you check the problem constraints:
"It's guaranteed that you can reach nums[n - 1]."
bro why u post video without veryfing the code just wasting our time and your time
Its perfectly working fine.If condition should be placed as shown below if(i==nextInterval){
nextInterval = coverage;
jumps++;
if(coverage >= target ){
return jumps;
}
}
the code works perfectly. Check the link in the description please :)
thx buddy
@@Sowmyakotha-lj8te
instead of if(coverage>= destination), there should be (lastjumpIdx>=destination)
Why do you think so?
@@nikoo28
N = 6
arr = {1, 4, 3, 2, 6, 7}
Output: 2
take this example, if you are using coverage>= destination, your output will be 1.
@@piyushanand3451i just verified. With my solution, the output is 2 as expected.
Added a test case too to confirm. Look at the video description for the file.
Make sure you are implementing it correctly :)
Not intutive at all the last one
For me 1d dp was the best here
The code that you provide in your videos are always WRONG!!!!!!!!!!!
what do you mean? I never upload a code that is not passing all test cases on LeetCode. Did you check the link in the video description?
@@nikoo28some people are just there to cause problems 😂