Open the Lock - Leetcode 752 - Python

  Рет қаралды 41,348

NeetCode

NeetCode

Күн бұрын

Пікірлер: 61
@NeetCode
@NeetCode 2 жыл бұрын
Python Code: github.com/neetcode-gh/leetcode/blob/main/752-Open-the-Lock.py Java Code: github.com/ndesai15/coding-java/blob/master/src/com/coding/patterns/bfs/OpenLock.java
@masternobody1896
@masternobody1896 2 жыл бұрын
can you make a video how we get a job at google
@masternobody1896
@masternobody1896 2 жыл бұрын
get good at leetcode? will it give me a job?
@thoufic907
@thoufic907 2 жыл бұрын
What was ur first thought when u saw this problem?
@prajwal2583
@prajwal2583 2 жыл бұрын
I thought you won't be posting anymore since you got a job at Google, your videos helps a lot
@chinesemimi
@chinesemimi 2 жыл бұрын
He’s been there for a year already!
@rawallon
@rawallon 2 жыл бұрын
@@chinesemimi That in covid years of human years?
@lavanya_m01
@lavanya_m01 2 жыл бұрын
Just in case if you didn't know, -1%10 gives 9 in python. so we don't have to add 10 and perform modulo. Great video btw!
@NaqushabNeyazee
@NaqushabNeyazee 2 жыл бұрын
At this point I have started listening to your content as a podcast. Great work!!
@rawallon
@rawallon 2 жыл бұрын
Who needs asmr when we got this
@tinali7149
@tinali7149 2 жыл бұрын
I tired to search this problem in your channel this morning but couldn’t find the video, and then you posted this video after I had lunch!
@fightmeonclubpenguin7748
@fightmeonclubpenguin7748 2 жыл бұрын
I got this question in my Amazon interview a couple months ago!
@siddharthr594
@siddharthr594 7 ай бұрын
What else did you get?
@homyakMilashka
@homyakMilashka 7 ай бұрын
I was so scared of this problem before I saw the graph and explanation, your explanations are golden.
@ambroseaurelian9696
@ambroseaurelian9696 2 жыл бұрын
Thank you, this why I love this channel the dedication. One day I will make you proud!
@orangethemeow
@orangethemeow 2 жыл бұрын
It's so smart to add deadends to the visited set
@ThantHtooSan-p3f
@ThantHtooSan-p3f 7 ай бұрын
appreciate your efforts and big thanks to your explanation. It helps me not to quit practicing the leetcoode
@unitycatalog
@unitycatalog 2 жыл бұрын
The space complexity is actually O(log 10000 to the base 8) because each combination only has 8 neighbor combinations, and the space needed for visited can be reduced by having a array of Boolean of size 10k (that is 10kb) or using a bit set (size 1.25 KB)
@showmethemoney824
@showmethemoney824 2 жыл бұрын
Appreciate your effort and don’t stop posting
@wesammustafa9004
@wesammustafa9004 2 жыл бұрын
Simple and straightforward explanations. I'd appreciate it if you could extend the time allotted for explaining time and space complexity.
@hassan7569
@hassan7569 2 жыл бұрын
Another day, another NeetCode video.
@fa11en1ce
@fa11en1ce 2 жыл бұрын
Would've been interesting to see this solved using a* if you use each lock digit as a coordinate
@yunaf4609
@yunaf4609 2 жыл бұрын
Great explanation! This one was tricky because it uses the word "minimum" so I totally thought it was a DP problem and tried to attack it using DFS + memoization and I got stuck. But your explanation was really clear! :)
@zhen9445
@zhen9445 2 жыл бұрын
I think DFS + memoization still work if you keep update a minimum path variable and search all the working path? BFS can ensure when you first get the target, you are in the shortest path, so you don't need to search all the working path
@shahzebnaveed4776
@shahzebnaveed4776 2 жыл бұрын
For 1000 (10^4) possible combinations, we are also generating lock states within the outer while loop. Shouldn't that make the time complexity O(N * 10^4)?
@MP-ny3ep
@MP-ny3ep 7 ай бұрын
Great explanation as always. Thank you !
@YasirYSR
@YasirYSR 2 жыл бұрын
in Love with this channel
@achint227
@achint227 9 ай бұрын
I was wondering if this could be solved by implementing a bidirectional search ... would be more efficient
@jeevisiran21
@jeevisiran21 2 жыл бұрын
Hi Neetcode thanks for your neat explaination...can you pls solve leetcode 465. Optimal account balance problem...this question asked by Google and uber...and this problem is pretty unique!
@nathamuni9435
@nathamuni9435 2 жыл бұрын
Ooh 🤯 every intuitive
@utkarshagupte1178
@utkarshagupte1178 2 жыл бұрын
Wonderful explanation.
@Mcfly868
@Mcfly868 2 жыл бұрын
I wonder if A-Star search algo would improve average run time efficiency. It basically applies an estimation-cost-to-destination. depending on current_steps_taken + estimation-cost-to-destination, it will prioritize which state in the queue should be processed next. Reason i say i wonder, is because the worst case would be nlgn, which is worse than O(10000) in this case
@pastori2672
@pastori2672 7 ай бұрын
felt terrible comming up with this solution just to know its basically as efficient as you can get it 😆👍
@metarus208
@metarus208 2 жыл бұрын
thank you for soldiering on
@amirbayat5713
@amirbayat5713 2 жыл бұрын
More of a Python question. How come we didn't return the res in the helper function but the for loop in the main function picked the child of children up? How come we can iterate through the res without having it returned? Thanks
@ks-mq3fm
@ks-mq3fm 2 жыл бұрын
Hi your videos are amazing Please share your interview experience
@tianmingguo8271
@tianmingguo8271 2 жыл бұрын
Great explanation.
@chenzhuo9
@chenzhuo9 2 жыл бұрын
Hi Neet! Thanks for your videos! They are really helpful! Could you pls do 987. Vertical Order Traversal of a Binary Tree? This is a really popular question for FB (top 10). I think it will help many people! Thanks
@shinsatori184
@shinsatori184 2 жыл бұрын
Thanks for the explanation. So clear!
@Deschuttes
@Deschuttes 2 жыл бұрын
Thanks need, please keep going.
@vatsalsinha9273
@vatsalsinha9273 2 жыл бұрын
Will it be a better approach to reverse the problem and start from target as root node and then try and reach 0000... ? I think it might save us some calculation of nodes not needed to trace in the tree. What do you think ?
@MrKulkoski
@MrKulkoski 2 жыл бұрын
it would be literally the same, the start and end positions don't matter
@telnet8674
@telnet8674 2 жыл бұрын
thank you
@nishantingle1438
@nishantingle1438 2 жыл бұрын
Once you see 3:01 then its just good ol' BFS
@dpynsnyl
@dpynsnyl Жыл бұрын
Shouldn't we have added "0000" to the visit set in the beginning?
@sudhaarulmani9218
@sudhaarulmani9218 2 жыл бұрын
Thank you 🙏
@irarose3536
@irarose3536 2 жыл бұрын
Thanks!
@beyond-convention
@beyond-convention 2 жыл бұрын
your videos are very good. what tools do you use to create videos
@stanleyokoli212
@stanleyokoli212 2 жыл бұрын
Who has an idea what tool neetcode use for presentation? the whiteboard/pen part? Thanks
@CostaKazistov
@CostaKazistov 2 жыл бұрын
I was wondering that too. Have seen others do whiteboard/pen with OneNote. But I'm sure there are better options than OneNote available (especially on Mac).
@mohithadiyal6083
@mohithadiyal6083 2 жыл бұрын
What is Neetcode's leetcode profile?
@barnetthan9391
@barnetthan9391 7 ай бұрын
ur a goat
@techenthusiast3966
@techenthusiast3966 2 жыл бұрын
Which softwares do you use to record and draw?
@NeetCode
@NeetCode 2 жыл бұрын
I use Paint3D
@itsmejaypatel
@itsmejaypatel 7 ай бұрын
can we use dfs?
@commonsolutions8825
@commonsolutions8825 Жыл бұрын
Shouldn’t “0000” be added to the visit set as well? What happens when children(1000) returns “0000”, wouldn’t that cause an infinite loop?
@commonsolutions8825
@commonsolutions8825 Жыл бұрын
It won’t cause an infinite loop but the queue will have “0000” appended to it twice. I think…
@nishadkanago4393
@nishadkanago4393 Жыл бұрын
I have written code like this in c++ but this is leading to TLE and I cant figure out why ? Can anyone help class Solution { public: vector children(string x) { vector v; for (int i=0; i
@ilanvinograd2631
@ilanvinograd2631 7 ай бұрын
Hi, even though it's been over 9 months, I'd be happy if this information is still relevant. Your code didn't work because of the line if (find(s.begin(), s.end(), child) == s.end()). You don’t need to use iteration from beginning to end because it's inefficient. Instead, you can use the more efficient find() function of an unordered set, like s.find(child) == s.end(). This approach reduces the time complexity to O(1) when you change from set to unordered_set. Here's an example: class Solution { public: vector children(string x) { vector v; for (int i = 0; i < 4; i++) { char a = (((x[i] - '0') + 1) % 10) + '0'; v.push_back(x.substr(0, i) + a + x.substr(i + 1)); char b = (((x[i] - '0') - 1 + 10) % 10) + '0'; v.push_back(x.substr(0, i) + b + x.substr(i + 1)); } return v; } int openLock(vector& deadends, string target) { if (find(deadends.begin(), deadends.end(), "0000") != deadends.end()) return -1; queue q; q.push({"0000", 0}); unordered_set s({"0000"}); //
@supremoluminary
@supremoluminary 7 ай бұрын
You go into the code too soon. Not enough explanation. Sorry.
Shortest Bridge - Leetcode 934 - Python
14:51
NeetCode
Рет қаралды 39 М.
Remove K Digits - Leetcode 402 - Python
14:36
NeetCode
Рет қаралды 64 М.
Players vs Pitch 🤯
00:26
LE FOOT EN VIDÉO
Рет қаралды 133 МЛН
Из какого города смотришь? 😃
00:34
МЯТНАЯ ФАНТА
Рет қаралды 2,5 МЛН
Молодой боец приземлил легенду!
01:02
МИНУС БАЛЛ
Рет қаралды 1,9 МЛН
752. Open the Lock | BFS | Graph | Time Complexity | Why not DP?
25:53
5 Useful F-String Tricks In Python
10:02
Indently
Рет қаралды 329 М.
Decode String - Leetcode 394 - Python
16:26
NeetCode
Рет қаралды 92 М.
Delete and Earn - Dynamic Programming - Leetcode 740 - Python
19:09
Maximum Frequency Stack - Leetcode 895 - Python
13:21
NeetCode
Рет қаралды 28 М.
Dynamic Programming isn't too hard. You just don't know what it is.
22:31
DecodingIntuition
Рет қаралды 197 М.
Mastering Dynamic Programming - How to solve any interview problem (Part 1)
19:41
Word Ladder - Breadth First Search - Leetcode 127 - Python
17:06
Text Justification - Leetcode 68 - Python
17:52
NeetCodeIO
Рет қаралды 28 М.
Players vs Pitch 🤯
00:26
LE FOOT EN VIDÉO
Рет қаралды 133 МЛН