Skip to content

Commit 3d57101

Browse files
committed
Solution: Unique Paths
1 parent ee9b806 commit 3d57101

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

โ€Žunique-paths/flynn.cppโ€Ž

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* ํ’€์ด
3+
* - ์กฐํ•ฉ ๊ณต์‹์„ ์‚ฌ์šฉํ•˜๋ฉด overflow ๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
4+
* - ๋ชจ๋“  ์ขŒํ‘œ์— ๋Œ€ํ•ด uniquePaths๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค
5+
* - ํŠน์ • ์ขŒํ‘œ์˜ uniquePaths๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ํ–‰๋งŒ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธธ์ด m์˜ ๋ฐฐ์—ด ๋‘ ๊ฐœ๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค
6+
*
7+
* Big O
8+
* - Time complexity: O(MN)
9+
* - Space compexity: O(N)
10+
*/
11+
12+
class Solution {
13+
public:
14+
int uniquePaths(int m, int n) {
15+
vector<int> row1;
16+
vector<int> row2;
17+
18+
for (int i = 0; i < n; ++i) row1.push_back(1);
19+
row2.push_back(1);
20+
for (int i = 1; i < n; ++i) row2.push_back(0);
21+
22+
for (int j = 1; j < m; ++j) {
23+
for (int i = 1; i < n; ++i) row2[i] = row1[i] + row2[i - 1];
24+
swap(row1, row2);
25+
row2[0] = 1;
26+
for (int i = 1; i < n; ++i) row2[i] = 0;
27+
}
28+
29+
return row1[n - 1];
30+
}
31+
};

0 commit comments

Comments
ย (0)