Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions solutions/62. Unique Paths/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,13 @@ dp[i][j] = dp[i-1][j] + dp[i][j-1]
* 複雜度:
* 時間複雜度:O(M * N)
* 空間複雜度:O(M * N)

仔細觀察,會發現不需要用 M * N 的空間,只需要一個一維的陣列,因為每次只需要用到上一個 row 的資料,所以可以省略掉一個維度。這樣空間複雜度就會變成 O(N):

```
dp[j] += dp[j - 1]
```

* 複雜度:
* 時間複雜度:O(M * N)
* 空間複雜度:O(N)
16 changes: 8 additions & 8 deletions solutions/62. Unique Paths/solution.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
dp = [[0] * n for _ in range(m)]
for i in range(m):
for j in range(n):
if i == 0 or j == 0:
dp[i][j] = 1
else:
dp[i][j] = dp[i-1][j] + dp[i][j-1]
return dp[-1][-1]
dp = [1] * n

for _ in range(1, m):
for j in range(1, n):
dp[j] += dp[j - 1]

return dp[-1]