752. Open the Lock | BFS | Graph | Time Complexity | Why not DP?
Vložit
- čas přidán 20. 04. 2024
- In this video, I'll talk about how to solve Leetcode 752. Open the Lock | BFS | Graph | Time Complexity | Why not DP?
Let's Connect:
📱Discord (Join Community) : / discord
📝Linkedin: / aryan-mittal-0077
📸 Instagram: / ez.pz.dsa
💻 Twitter - / aryan_mittal007
🤖 Github: github.com/aryan-0077
About Me:
I am Aryan Mittal - A Software Engineer in Goldman Sachs, Speaker, Creator & Educator. During my free time, I create programming education content on this channel & also how to use that to grow :)
✨ Timelines✨
✨ Hashtags ✨
#programming #Interviews #leetcode #faang #maang #datastructures #algorithms
Hey don't get demotivated. You really explain all the questions in very good way. From last 2 month i'm daily watching your videos whenever I get doubt while solving daily leetcode question.
Your dedication of how you record the videos early morning with such a great explanation is unbelievable.
Keep up the good work. You will surely get reach with this consistency.
Looking forward to meet you some day, it will be nice.
"Lavel sbke niklenge" .... Good use of meme 😂
You are putting so much effort in these videos.
keep up the good work bro.
ive not seen any channel put that much effort everyday. keep up the work bro!
BROO!!! YOU JUST KILLED IT!!!! Keep making videos like this!!
bhaiya aap goated ho never forget
Great Explanation ✨.Thank you!
I love your videos Aryan, i watch it on a daily basis.
Your code is very clean and clear
keep up the good work my man
good keep it up !
great explanation
Awesome.. idk why you get very less likes.. you deserve a lot more
ngl, You are my inspiration.
Great Content.
Keep Doing!!!!
The internal while loop for each level seemed a little confusing to me, so i did it a little differently by making a queue of pair which keeps a pair of {currentString, level} and that did the job in a single while loop, similar to traditional BFS.
❣💞❣
great content 😌
nice bro
Nice explanation.
Amazing explanation as always
Thanks bro
great solution and explanation🙌
nice explanation!!
Great Explanation please open a Hindi Channel also
TIME AND SPACE COMPLEXITY PART WAS LIT!!
Lyaval sabke nikalenge 😌😌😌
Thanks a ton for making us understand in the best possible way! 💯...It takes a lot of efforts, guts, and a very deep understanding to do so 🔥.
Level sabke niklenge.
100k soon!!!!❤
Sorry, bas BFS dekha aur video nahi dekha, thank you for the hint.
Yrr aap itna mehnat kar rahe ho.
App j curve ke starting pe ho bas kuch din aur, aap dekhna 100k bahut jald hojayga. 🙂
Leavaaal sabke niklenge
CFBR
At first I thought It was a recursion problem, but I was getting wrong answer with it. I still don't understand how you come up with graph instead of recursion
Java code for reference :
class Solution {
public char turnRight(char c){
return c == '9' ? '0' : (char) ( c + 1);
}
public char turnLeft(char c){
return c == '0' ? '9' :(char) ( c - 1);
}
public List nextOptions(String s){
List options = new ArrayList();
for(int i = 0 ; i < 4 ; i++ ){
char [] copy = s.toCharArray();
copy[i] = turnRight(s.charAt(i));
options.add(new String(copy));
copy[i] = turnLeft(s.charAt(i));
options.add(new String(copy));
}
return options;
}
public int openLock(String[] deadends, String target) {
Deque q = new LinkedList();
Set visited = new HashSet();
q.offer("0000");
visited.add("0000");
Set deadend = new HashSet(Arrays.asList(deadends));
int level = 0;
while(!q.isEmpty()){
int size = q.size();
while(size-- > 0){
String curr = q.poll();
if(curr.equals(target)) return level;
if(deadend.contains(curr)) continue;
for(String option : nextOptions(curr)){
if(!visited.contains(option) && !deadend.contains(curr) ){
q.offer(option);
visited.add(option);
}
}
}
level++;
}
return -1;
}
}
Again