unique paths

思路

用正常的方法可以说很麻烦了,因为有各种递归,看到多递归且重复就容易想到动态规划,具体思路就是
维护一个二维数组,记住path[i][j]即到i行j列的路径数,并且path[i][j] = path[i-1][j] + path[i][j - 1]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int (int m, int n) {
int a[101][101] = { 0 };
for (int i = 0; i < m; i++) {
a[i][0] = 1;
}
for (int i = 0; i < n; i++) {
a[0][i] = 1;
}
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
a[i][j] = a[i - 1][j] + a[i][j - 1];
}
}
return a[m - 1][n - 1];
}