異なるパス(Python 3)


質問説明:ロボットはm x nメッシュの左上隅にあります(開始点は下図で「Start」とマークされています).ロボットは毎回、下または右に1歩しか移動できません.ロボットはメッシュの右下隅に到達しようとします(下図では「Finish」と表記されています).全部で何本の違う経路がありますか?
例:
入力:m=3、n=2
出力:3
説明:
左上から、全部で3つの経路で右下に行けます.1.右->右->下2.右へ->下へ->右へ3.下へ->右へ->右へ
解決策:動的計画思想を用いて、仮に終点に到達する前に我々は2つの選択肢しかないと仮定し、1つは1つ下に移動し、1つは右に移動し、すなわちpath[m][n] = path[m-1][n]+path[m][n-1]我々は知っているpath[0][0]=1順次計算するpath[m][n]コードは以下の通り( ̄▽ ̄):
import numpy as np
class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        res = np.zeros((m, n),dtype=np.int)
        for i in range(0,m):
            for j in range(0,n):
                if j-1>=0 and i-1>=0:
                    res[i][j] = res[i-1][j]+res[i][j-1]
                elif j-1>=0:
                    res[i][j] = res[i][j-1]
                elif i-1>=0:
                    res[i][j] = res[i-1][j]
                else:
                    res[i][j] = 1
        # print(res)
        return res[m-1][n-1]

時間と空間の複雑さ:時間の複雑さは少し高いω⁄ ⁄ ⁄)⁄,二重ループなので、皆さんにメッセージを残すには良い方法があるでしょう.
ソース:力ボタン(LeetCode)リンク:https://leetcode-cn.com/probl...