免責事項:この記事は、オリジナルである、すべての権利予約https://blog.csdn.net/weixin_41864878/article/details/90520351
左コーナーMXNグリッドに位置ロボットは(以下、「スタート」と表示されたポイントのフィギュアを開始します)。
ロボットは右または下に一歩を移動することができます。(「完了」と表示され、次の図の)グリッドの右下隅に到達しようとしているロボット。
Q.合計でありますどのように多くの異なるパス?
説明:M及びnの値100以下です。
例1:
入力:M = 3、N = 2出力:3説明:左上隅、右下隅に3つの経路の合計。
- 右 - >右 - >ダウン
- 右 - >下 - >右
- ダウン - >右 - >右の例2:
入力:M = 7、n = 3の出力:28
この問題は、比較的単純な方程式ステップ[I] [J] =であるステップ[I-1]〜[J] +工程[I]、[J-1]
、その後、境界条件があってもよい注意します
class Solution(object):
def uniquePaths(self, m, n):
"""
:type m: int
:type n: int
:rtype: int
"""
if not m and not n: return 0
if not m or not n: return 1
if m == n == 1: return 1
step = [[1 for i in range(m)] for j in range(n)]
step[0][0] = 0
for i in range(1, n):
for j in range(1, m):
step[i][j] = step[i-1][j] + step[i][j-1]
return step[n-1][m-1]