Skip to content

Commit a84da2f

Browse files
committed
Add unique-paths solution
1 parent 0563971 commit a84da2f

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

unique-paths/Jeehay28.js

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
/**
2+
* @param {number} m
3+
* @param {number} n
4+
* @return {number}
5+
*/
6+
7+
// 🍎 DP
8+
// Time Complexity: O(m*n)
9+
// Space Complexity: O(n)
10+
11+
// Row 0: [1, 1, 1, 1]
12+
// Row 1: [1, 2, 3, 4]
13+
// Row 2: [1, 3, 6, 10]
14+
15+
// Initial dp: [1, 1, 1, 1]
16+
// left = 1 (always starts with 1 for the first column)
17+
18+
// col = 1: left += dp[1] → left = 1 + 1 = 2 → dp[1] = left
19+
// col = 2: left += dp[2] → left = 2 + 1 = 3 → dp[2] = left
20+
// col = 3: left += dp[3] → left = 3 + 1 = 4 → dp[3] = left
21+
22+
// dp after row 1: [1, 2, 3, 4]
23+
24+
// Initial dp: [1, 2, 3, 4]
25+
// left = 1
26+
27+
// col = 1: left += dp[1] → left = 1 + 2 = 3 → dp[1] = left
28+
// col = 2: left += dp[2] → left = 3 + 3 = 6 → dp[2] = left
29+
// col = 3: left += dp[3] → left = 6 + 4 = 10 → dp[3] = left
30+
31+
// dp after row 2: [1, 3, 6, 10]
32+
33+
var uniquePaths = function (m, n) {
34+
let dp = new Array(n).fill(1);
35+
36+
for (let row = 1; row < m; row++) {
37+
let left = 1;
38+
for (let col = 1; col < n; col++) {
39+
left += dp[col];
40+
dp[col] = left;
41+
}
42+
}
43+
44+
return dp[n - 1];
45+
};
46+
47+
/**
48+
* @param {number} m
49+
* @param {number} n
50+
* @return {number}
51+
*/
52+
53+
// 🍎 DFS
54+
// Time Complexity: O(m*n)
55+
// Space Complexity: O(m*n)
56+
57+
// var uniquePaths = function (m, n) {
58+
// const memo = {};
59+
60+
// const dfs = (row, col) => {
61+
// if (row === m - 1 && col === n - 1) {
62+
// return 1;
63+
// }
64+
65+
// let cnt = 0;
66+
67+
// const key = `${row}, ${col}`;
68+
// if (key in memo) {
69+
// return memo[key];
70+
// }
71+
72+
// if (row + 1 < m) {
73+
// cnt += dfs(row + 1, col);
74+
// }
75+
76+
// if (col + 1 < n) {
77+
// cnt += dfs(row, col + 1);
78+
// }
79+
80+
// memo[key] = cnt;
81+
82+
// return cnt;
83+
// };
84+
85+
// return dfs(0, 0);
86+
// };

0 commit comments

Comments
 (0)