Skip to content

Commit ab1e868

Browse files
Jeehay28Jeehay28
Jeehay28
authored and
Jeehay28
committed
Add unique-paths solution in TypeScript
1 parent bd1540a commit ab1e868

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

unique-paths/Jeehay28.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// Memoized DFS
2+
// TC: O(m * n)
3+
// SC: O(m * n)
4+
function uniquePaths(m: number, n: number): number {
5+
const memo = new Map<string, number>();
6+
7+
const traverse = (row: number, col: number) => {
8+
if (row >= m || col >= n) return 0;
9+
if (row === m - 1 && col === n - 1) return 1;
10+
const key = `${row}-${col}`;
11+
if (memo.has(key)) return memo.get(key);
12+
13+
const result = traverse(row + 1, col) + traverse(row, col + 1);
14+
memo.set(key, result);
15+
return result;
16+
};
17+
18+
return traverse(0, 0);
19+
}
20+
21+
// DP
22+
// TC: O(m * n)
23+
// SC: O(m * n)
24+
/*
25+
function uniquePaths(m: number, n: number): number {
26+
27+
// 1, 1, 1
28+
// 1, 1+1=2, 1+(1+1)=3
29+
30+
const dp = Array.from({length: m}, () => Array(n).fill(1));
31+
32+
for(let i=1; i<m; i++) {
33+
for(let j=1; j<n; j++) {
34+
dp[i][j] = dp[i-1][j] + dp[i][j-1]
35+
}
36+
}
37+
38+
return dp[m-1][n-1];
39+
};
40+
*/
41+

0 commit comments

Comments
 (0)