Leetcode - 62本の異なるパスのPython

免責事項:この記事は、オリジナルである、すべての権利予約https://blog.csdn.net/weixin_41864878/article/details/90520351

左コーナーMXNグリッドに位置ロボットは(以下、「スタート」と表示されたポイントのフィギュアを開始します)。

ロボットは右または下に一歩を移動することができます。(「完了」と表示され、次の図の)グリッドの右下隅に到達しようとしているロボット。

Q.合計でありますどのように多くの異なるパス?

説明:M及びnの値100以下です。

例1:

入力:M = 3、N = 2出力:3説明:左上隅、右下隅に3つの経路の合計。

  1. 右 - >右 - >ダウン
  2. 右 - >下 - >右
  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]

おすすめ

転載: blog.csdn.net/weixin_41864878/article/details/90520351