
Day 49 of LeetCode
Documenting LeetCode solving. Q126 10. Regular Expression Matching Hard. DP class Solution: def isMatch(self, s: str, p: str) -> bool: dp = {} def dfs(i, j): if (i, j) in dp: return dp[(i, j)] ...

Documenting LeetCode solving. Q119 518. Coin Change II Medium. 2D DP Spent a lot of time drawing the grid. class Solution: def change(self, amount: int, coins: List[int]) -> int: dp = [[0] * (amount + 1) for _ in range(len(coins) + 1)] ...

Documenting LeetCode solving. Q117 127. Word Ladder Hard. Graph BFS class Solution: def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int: if endWord not in wordList: return 0 nei = collecti...

Documenting LeetCode solving. Q116 210. Course Schedule II Medium. Graph Topological sort. class Solution: def findOrder(self, numCourses: int, prerequisites: List[List[int]]) -> List[int]: prereq = { c:[] for c in range(numCourses) } ...

Documenting LeetCode solving. Q114 994. Rotting Oranges Medium. Graph class Solution: def orangesRotting(self, grid: List[List[int]]) -> int: # BFS q = deque() time, fresh = 0, 0 ROWS, COLS = len(grid), len(grid[0...

Documenting LeetCode solving. Q112 695. Max Area of Island Medium. Graph class Solution: def maxAreaOfIsland(self, grid: List[List[int]]) -> int: ROWS, COLS = len(grid), len(grid[0]) visit = set() # return the area ...

Documenting LeetCode solving. Q110 207. Course Schedule Medium. Graph class Solution: def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool: # {crs : [pres]} preMap = {i : [] for i in range(numCourses)} ...