Lintcode114。さまざまなパス
タイトルの説明:m×nグリッドの左上隅にロボットがあります。
ロボットは一度に1ステップ下または右にしか移動できません。ロボットはグリッドの右下隅に到達しようとします。
いくつの異なるパスがありますか?
- nとmの両方が100
を超えず、答えは32ビット整数の表現可能な範囲内にあることが保証されます。
これは、座標型動的計画法における計画数の問題に属します。
class Solution {
public:
/**
* @param m: positive integer (1 <= m <= 100)
* @param n: positive integer (1 <= n <= 100)
* @return: An integer
*/
int uniquePaths(int m, int n) {
int f[m][n];
//1. 起点和边界情况
for (int i = 0; i < m; ++i) {
f[i][0] = 1;
}
for (int j = 0; j < n; ++j) {
f[0][j] = 1;
}
//2. 状态转移
for (int i = 1; i < m; ++i) {
for (int j = 1; j < n; ++j) {
f[i][j] = f[i - 1][j] + f[i][j - 1];
}
}
return f[m - 1][n - 1];
}
};