Out of Boundary Paths - Leetcode 576 - Python

  Рет қаралды 15,132

NeetCodeIO

NeetCodeIO

Күн бұрын

🚀 neetcode.io/ - A better way to prepare for Coding Interviews
🧑‍💼 LinkedIn: / navdeep-singh-3aaa14161
🐦 Twitter: / neetcode1
⭐ BLIND-75 PLAYLIST: • Two Sum - Leetcode 1 -...
Problem Link: leetcode.com/problems/out-of-...
0:00 - Read the problem
0:30 - Drawing Recursive solution
5:23 - Coding Recursive
8:59 - Drawing DP solution
12:35 - Coding DP solution
leetcode 576
#neetcode #leetcode #python

Пікірлер: 27
@AMakYu
@AMakYu 5 ай бұрын
That 3D DP solution is wild. I was able to get the memoization solution on my own today, but I still have trouble translating that into bottom up approaches. But honestly, I've come a long ways already for being able to solve a problem like this by myself with memo. Thanks Neet!
@zaki_1337
@zaki_1337 5 ай бұрын
is it necessary to learn the iterative solutions? do interviewers ask that?
@aswinnath8580
@aswinnath8580 5 ай бұрын
they will mostly expect that one if you give only the memo one there is no guarantee you will pass the round unless if its a very hard dp problem or not a trivial one. @@zaki_1337
@AMakYu
@AMakYu 5 ай бұрын
@@zaki_1337 I think it depends on your interviewer. I think most would probably accept memo, but I had a friend who had a TikTok interview where he tried memo for a problem but it was hitting a stack limit, indicating that they wanted the bottom up approach.
@zaki_1337
@zaki_1337 5 ай бұрын
@@AMakYu oh :/
@vm1662
@vm1662 5 ай бұрын
3D DP it is! I was thinking in terms of 2D and didn't know how to memoize it. Thanks NeetCode!
@firehouse1395
@firehouse1395 5 ай бұрын
Your solutions are so real, nothing fancy, they are simple and easy to understand
@felixx2012
@felixx2012 5 ай бұрын
Thanks for doing these daily problems. Very helpful
@pastori2672
@pastori2672 5 ай бұрын
i actually got MLE on a bfs solution and a TLE on the dfs one xd
@gmh14
@gmh14 5 ай бұрын
You mentioned a BFS solution wouldn't work but in one of my approaches I considered it and it somehow worked. Gave TLE at 22/94 but it could possibly be optimized? # BFS solution MOD = 10**9 + 7 directions = [(0, -1), (0, 1), (-1, 0), (1, 0)] queue = [(startRow, startColumn, maxMove)] res = 0 while queue: node_i, node_j, curMoves = queue.pop(0) if curMoves > 0: curMoves -= 1 for delrow, delcol in directions: new_i, new_j = node_i + delrow, node_j + delcol if not (0
@legendary5320
@legendary5320 5 ай бұрын
One thing I was confused about the recursive brute force solution is that why are we allowed to go back to the node we just came from? Would that not consitute a path?
@MP-ny3ep
@MP-ny3ep 5 ай бұрын
Great explanation as always. Thank you .
@EduarteBDO
@EduarteBDO 5 ай бұрын
The second solution is less efficient in LC because we are calculating the possibilities for all positions in the grid. Different from the dfs solution were we calculate for the startRow/startCol, but in a case where we wanted to calculate all of them the DP is much more faster and memory efficient.
@sankalpchordia5245
@sankalpchordia5245 5 ай бұрын
Well explained
@rostislav_vat
@rostislav_vat 4 ай бұрын
thanks, man
@unknown-ut5qn
@unknown-ut5qn 5 ай бұрын
always on top
@krateskim4169
@krateskim4169 5 ай бұрын
Thank you so much
@Kaviarasu_NS
@Kaviarasu_NS 5 ай бұрын
Thanks ❤
@priyanshuganatra
@priyanshuganatra 5 ай бұрын
Memoization solution is pretty straightforward, I dunno bout da tabu sol tho
@shashankjoshi8250
@shashankjoshi8250 5 ай бұрын
For a Brute Force Memoization I am getting TLE.
@sankalppatil2994
@sankalppatil2994 5 ай бұрын
💪💪
@walkastray007
@walkastray007 5 ай бұрын
Not to brag NeetCode, but I got the 15 view on this video.
@SC2Edu
@SC2Edu 5 ай бұрын
did you solve it at least? :D
@XEQUTE
@XEQUTE 5 ай бұрын
day 26 Leetcode
@shaco6630
@shaco6630 5 ай бұрын
Great explanation as usual! A suggestion, is it not a bit more readible to remove the if/else checks with something similar to this? (I added this vcrsion to neetcode github if that's ok, instead of having all the if statements) class Solution { fun findPaths(m: Int, n: Int, maxMove: Int, startRow: Int, startColumn: Int): Int { val mod = 1_000_000_007 val dirs = intArrayOf(0, 1, 0, -1, 0) val dp = Array (m) { Array (n) { LongArray (maxMove + 1) } } for (k in 1..maxMove) { for (i in 0 until m) { for (j in 0 until n) { for (dir in 0..3) { val i2 = i + dirs[dir] val j2 = j + dirs[dir + 1] if (i2 < 0 || i2 == m || j2 < 0 || j2 == n) dp[i][j][k]++ else dp[i][j][k] = (dp[i][j][k] + dp[i2][j2][k - 1]) % mod } } } } return dp[startRow][startColumn][maxMove].toInt() } }
@EduarteBDO
@EduarteBDO 5 ай бұрын
for the if statments I mada a helper function: class Solution: def findPaths(self, m: int, n: int, maxMove: int, startRow: int, startColumn: int) -> int: ROWS,COLS = m,n MODULO = pow(10,9)+7 curGrid = [[0] * COLS for _ in range(ROWS)] prevGrid = [[0] * COLS for _ in range(ROWS)] def helper(r,c): if r < 0 or c < 0 or r == ROWS or c == COLS: return 1 return prevGrid[r][c] for _ in range(maxMove): for r in range(ROWS): for c in range(COLS): val = helper(r+1,c) val += helper(r-1,c) val += helper(r,c+1) val += helper(r,c-1) val %=MODULO curGrid[r][c] = val prevGrid, curGrid = curGrid,prevGrid return prevGrid[startRow][startColumn]
Most Common Concepts for Coding Interviews
6:08
NeetCode
Рет қаралды 289 М.
The Algorithm Behind Spell Checkers
13:02
b001
Рет қаралды 408 М.
Clowns abuse children#Short #Officer Rabbit #angel
00:51
兔子警官
Рет қаралды 73 МЛН
ЧУТЬ НЕ УТОНУЛ #shorts
00:27
Паша Осадчий
Рет қаралды 7 МЛН
Heartwarming moment as priest rescues ceremony with kindness #shorts
00:33
Fabiosa Best Lifehacks
Рет қаралды 37 МЛН
K Inverse Pairs Array - Leetcode 629 - Python
29:44
NeetCodeIO
Рет қаралды 15 М.
MY ULTIMATE LEETCODE TRICKS
8:12
PIRATE KING
Рет қаралды 228 М.
One Mistake Took Down a 29-Yr-Old Dark Web Drug Lord
22:48
Newsthink
Рет қаралды 8 МЛН
How do indexes make databases read faster?
23:25
Arpit Bhayani
Рет қаралды 55 М.
Got UGLY TEXTURE? Skim Coat it away.  I'll teach you how
25:18
That Kilted Guy DIY Home Improvement
Рет қаралды 603 М.
I gave 127 interviews. Top 5 Algorithms they asked me.
8:36
Sahil & Sarra
Рет қаралды 623 М.
❌ Don't Run Behind 500 LEETCODE Problems ❌ Focus on QPCD
8:31
What should you write into the __init__.py file? 2MinutesPy
3:14
Clowns abuse children#Short #Officer Rabbit #angel
00:51
兔子警官
Рет қаралды 73 МЛН