This is the best backtracking video i have seen. Thank you for saving me another 24 hours of effort into learning this and saving me the rest of my hair on the head from being pulled!
Hey! I am back! Thank you so much for the support! It is truly motivating. I am coming back with more videos, for now I am shifting my focus on JavaScript, but if you want me to cover anything, let me know 😀 My new video about JavaScript Objects: ruclips.net/video/TFQQ-H5foZs/видео.html
This is the best video to start of solving a backtracking. Now I can think of optimisations, all the solutions I saw were swapping indexes but didn't seem intuitive although it's understandable. Your video is to the point and intuitive as well. Thanks
Wow! Your way to present materials is slightly unusual, but man! I've just seen one of the clearest explanations of backtracking and the permutation problem. Tree visualization was super helpful. Definitely got my like. Make more content!
Love this guy! He's funny and knowledgable. No dull movements, very interesting and engaging video. One of the coolest youtuber for Leetcode. I Highly recommend learning from him. :)
Great explanation 🙂 "Give a Man a Fish, and You Feed Him for a Day. Teach a Man To Fish, and You Feed Him for a Lifetime" Here you explained the background knowledge behind the algorithm, and not just explaining the solution flow 🙂that's how teaching should be done Kudos 😀
Seemed like you got nervous when you whipped out the code haha, I feel that. Best backtracking video I’ve watched so far. You did a great job of simplifying Back To Back SWE’s videos. Adding that backtracking recipe and using it to work through the problem was great.
Thanks, this was very helpful compared to other solutions that I had encountered. My initial thought process was to use a set and do a difference between the original set and permutation, didn't think of using a simple boolean array.
I really like your soln, very clear explanation. I didnt think of using a seperate vector to keep track of used elements either - I tried to used a set when I was implementing on my own and failed miserably haha
For anyone who wants a more intuitive solution the probem, by simply picking all choices 1 by 1 and also discarding the appended characters to allow for all permutations. class Solution: def permute(self, nums: List[int]) -> List[List[int]]: res = [] visited = [False for _ in range(len(nums))] def dfs(subset): if len(subset) == len(nums): res.append(subset.copy()) return for i in range(len(nums)): if not visited[i]: #Pick the choice visited[i] = True subset.append(nums[i]) dfs(subset) #Undo the choice visited[i] = False subset.pop() dfs([]) return res
Hey! The video is a great introduction to the topic, but I'm afraid you're presenting it to be more trivial than it really is, which may lead some viewers to feel they understand it when they might not. If possible, breaking down the algorithm step by step and explaining each recursive call in detail (at least until the second permutation is generated) could help. The recursive calls that produce nested loops and even more recursive calls aren't simple to keep track of in your head, especially since the "undoing" at the end of the initial for loop only happens after all those nested recursions occur and call their own removals. If you do so, keeping track of which indexes are used in your "used" array instead of the actual numbers may add complexity to the process of explaining it, thanks!
Can you please explain to me how the hell does the algorithm manages to not take the previous vector and generate another one totally different? I'm having a rough time figuring it out. If the first vector was [1, 2, 3] and then deletes every element until the vector is void (and every element of the bool vector is false again), why in the world would the algorithm pick 3 after 1, instead of 2? :(
to me it seems like the return in the first if statement is unnecessary since if the goal is reached none of the choices will be valid and the recursion will stop?
Thank a lot. It was really helpful in understanding both backtracking and permutation. Future viewers, this is O(n^n ), e.g for an array lof length 3, this logic is iteratively equivalent to int len = arr.Length; for(int i=0; i < len; i++) { for(int j=0; j < len; j++) { for(int k=0; k < len; k++) { if(i != j && j != k && i != k) { List perm = new() {arr[i], arr[j], arr[k] }; result.Add(perm); } } } }
This is crazy. You didn't explain why he use what you wrote in code which is the main part. Completely useless video. You just copied and pasted what you saw/read somewhere else. I would argue do you even understand backtracking yourself? Yikes! Alsos top sleep talking through the video, if you tired go to sleep.
Thank you everyone for watching this video
For more leetcode videos check out this playlist: ruclips.net/p/PLuJfrVx3aQbG1_9k3khnuR0r2RaxExxse
"No one asked your opinion" - I laughed hard bro.. You are too mean. 😅🤣
This is the best backtracking video i have seen. Thank you for saving me another 24 hours of effort into learning this and saving me the rest of my hair on the head from being pulled!
I am glad it was helpful 😀
No one asked your opinion - JK
props to you. This video was the literal ONLY video that helped me understand backtracking and how to apply the concept to ANY problem
Me too haha
Hey! I am back!
Thank you so much for the support! It is truly motivating.
I am coming back with more videos, for now I am shifting my focus on JavaScript, but if you want me to cover anything, let me know 😀
My new video about JavaScript Objects: ruclips.net/video/TFQQ-H5foZs/видео.html
Please do more backtracking videos, more leetcode kind of videos. The demand for this is huge.
@@alitaha1200 Sure, do you have a specific leetcode question in mind, or anything specific you would like me to talk about?
1:10😂😂😂😂😂 , just made stay on this video. I like that reality check style!Good stuff mate.
This is the cleanest backtracking explanation I've ever seen.
This is the best video to start of solving a backtracking. Now I can think of optimisations, all the solutions I saw were swapping indexes but didn't seem intuitive although it's understandable. Your video is to the point and intuitive as well. Thanks
Wow! Your way to present materials is slightly unusual, but man! I've just seen one of the clearest explanations of backtracking and the permutation problem. Tree visualization was super helpful. Definitely got my like. Make more content!
Love this guy! He's funny and knowledgable. No dull movements, very interesting and engaging video. One of the coolest youtuber for Leetcode. I Highly recommend learning from him. :)
Thank you
The best among all the videos I watched related to this problem !!
The backtracking recipe is pure golden, this is a superb explanation, thank you.
Superb explanation. I was trying to come up with the recipe for backtracking and came across this video. Really helpful.
Wow.. this is the simplest permutation solution I have seen. Everyone doing that swapping thing which is so confusing. Thanks.
I really loved this! Please continue this series.
Thank you so much! The recipe and the ‘used’ trick really helped me understand
Great explanation 🙂
"Give a Man a Fish, and You Feed Him for a Day. Teach a Man To Fish, and You Feed Him for a Lifetime"
Here you explained the background knowledge behind the algorithm, and not just explaining the solution flow 🙂that's how teaching should be done
Kudos 😀
Seemed like you got nervous when you whipped out the code haha, I feel that. Best backtracking video I’ve watched so far. You did a great job of simplifying Back To Back SWE’s videos. Adding that backtracking recipe and using it to work through the problem was great.
You made backtracking super easy to understand!
I really like how provided backtracking recipe .
This is legendary...backtracking receipe....omggg this video is so so so helpful!!
Excellent quality- you have a talent for teaching
Why do we need to 'undo the choice' after permutation? We already discovered the permutations and print them. Why should I reverse back to original?
Thanks, this was very helpful compared to other solutions that I had encountered. My initial thought process was to use a set and do a difference between the original set and permutation, didn't think of using a simple boolean array.
best videos for backtracking ever. Hoping more explaination videos
Really thanks to you, guy. This video made me more understand about backtracking.
i love you man, this made a lot of sense to me and your backtracking building block helped me come to 90% of solution on my own
Excellent explanation. Thank you!
That backtracking recipe is goated
Good explanation but would have liked it more if you also explained a full recursive run down of your code.
The best explanation I have seen so far!!! Please do more videos
I really like your soln, very clear explanation. I didnt think of using a seperate vector to keep track of used elements either - I tried to used a set when I was implementing on my own and failed miserably haha
You kinda sound like jar jar binks
Nice explanation for the letter A. I just paused and laughed out loud a while before moving on. 😄
Very good explanation ! thanks for sharing !
Dude, thank you sooo much for your solution! I'd almost gave up on this problem but you explanation was realy clean! ))
I am glad it helped :)
For anyone who wants a more intuitive solution the probem, by simply picking all choices 1 by 1 and also discarding the appended characters to allow for all permutations.
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
res = []
visited = [False for _ in range(len(nums))]
def dfs(subset):
if len(subset) == len(nums):
res.append(subset.copy())
return
for i in range(len(nums)):
if not visited[i]:
#Pick the choice
visited[i] = True
subset.append(nums[i])
dfs(subset)
#Undo the choice
visited[i] = False
subset.pop()
dfs([])
return res
Thank you for this great video.
Sir, please comeback, this is the only one video that i understand -.-
This is great I hope you make more.
BRO!!! YOU TAUGHT ME BACKTRACKING HOLY SHHHHHHHHIIIIIIEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEET!!!!!!!!!!
Hey! The video is a great introduction to the topic, but I'm afraid you're presenting it to be more trivial than it really is, which may lead some viewers to feel they understand it when they might not. If possible, breaking down the algorithm step by step and explaining each recursive call in detail (at least until the second permutation is generated) could help. The recursive calls that produce nested loops and even more recursive calls aren't simple to keep track of in your head, especially since the "undoing" at the end of the initial for loop only happens after all those nested recursions occur and call their own removals.
If you do so, keeping track of which indexes are used in your "used" array instead of the actual numbers may add complexity to the process of explaining it, thanks!
Can you please explain to me how the hell does the algorithm manages to not take the previous vector and generate another one totally different? I'm having a rough time figuring it out. If the first vector was [1, 2, 3] and then deletes every element until the vector is void (and every element of the bool vector is false again), why in the world would the algorithm pick 3 after 1, instead of 2? :(
Noice explanation, I liked the graphics.
This is Badass,bro!!
beautifully explained
Thanks, good explanation!
You're welcome :)
Thanks for this. Great explanation !
starts bad but is actually insanely good.
great looking for more videos
Do more videos..it's been 1 year no more videos.. 🙄
to me it seems like the return in the first if statement is unnecessary since if the goal is reached none of the choices will be valid and the recursion will stop?
In this case, yes, but returning early avoids unnecessary computation.
hahahah i love you! best regards from brazil!
haha I like your style
Great video! Thanks for this
A very good content 👌
Interviewer: do this problem1;
ComputerBread: I'm the one doing it, I'll do problemA; OK!
...interviewer leaves the call
OK JUST READ THE CODE
but for real thank u for this video
Oh my God, It just clicked, all the time studying backtracking pattern
2:26 lmao… I was concerned for a moment 😅
A is a number
change my mind
Thank you so much sir!
Much better than swapping
I love you and your ascii joke lol
THE BACKTRACKING RECIPE IS PURE GOLD! .... see @4:08
it's a good video!
hey where are you from? your accent is super cool
Thank you, I am from France, but I try to "minimize" my accent.
Thank a lot. It was really helpful in understanding both backtracking and permutation. Future viewers, this is O(n^n ), e.g for an array lof length 3, this logic is iteratively equivalent to
int len = arr.Length;
for(int i=0; i < len; i++) {
for(int j=0; j < len; j++) {
for(int k=0; k < len; k++) {
if(i != j && j != k && i != k) {
List perm = new() {arr[i], arr[j], arr[k] };
result.Add(perm);
}
}
}
}
All the backtracking stuff is okay, but when are the joke videos coming? 😝
Jk, thanks a lot, this is such a clean explanation!
I don’t mind the jokes, but actually, they’re kind of a distraction. I’m trying to understand this.
Unfortunately, you lost me on the coding.
Nicely explained
I love you bro.
very nice !! thank you very much
Very helpful , thanks!!!!!!!!
you could have explained it with a dry run of the code
best solution!
But A is not a number
Dope :)
very nice, thanks
A is not number .. 😅😂
amazing
everything was cool until 8:18 ,you became a terrorist
yeah, I was so done with it! Sorry
@@ComputerBread hahahahahaha
thank you so much
jsjsjs 1:15
What's up with the 188 dislikes lol
it's 191 now T_T
@@ComputerBread fuck them, you should do more videos like this
thanks
This is crazy. You didn't explain why he use what you wrote in code which is the main part. Completely useless video. You just copied and pasted what you saw/read somewhere else. I would argue do you even understand backtracking yourself? Yikes! Alsos top sleep talking through the video, if you tired go to sleep.
1:00 hahaha
The beginning of the video was so cringe
True
Neetcode has nothing on u lol
Nobody asked my opinion 🤣
Good content but too much joking and nonsense
dont be boring
Wow…the guy makes a great video and u complain about him being funny
Oh god here we go
You must be fun at parties
Terrible explanation!
less comedy please 😭
Ok, no fun allowed, I am sorry