62. Unique Paths
做题历程:
- 本题应该做了不止3次了,本次大概耗时9分钟,独立解出。
本题还是比较简单,就是单纯的dynamic programming,把所有的格子扫描一遍,每个格子的可能性都会遵守: dp[i][j] = dp[i-1][j] + dp[i][j-1],很容易得到最终的结果。
代码如下:
class Solution {
public:
int uniquePaths(int m, int n) {
vector<vector<int>> dp(m, vector<int>(n, 0));
for (int i = 0; i < n; ++i) {
dp[0][i] = 1;
}
for (int j = 0; j < m; ++j) {
dp[j][0] = 1;
}
for (int j = 1; j < m; ++j) {
for (int i = 1; i < n; ++i) {
dp[j][i] = dp[j-1][i] + dp[j][i-1];
}
}
return dp[m-1][n-1];
}
};