質問 -最小コスト経路
は非負数で満たされたM×N個のグリッドが与えられると、そのパスに沿ってすべての数値の和を最小に左上から右下へのパスを見つけます。
注:あなたが唯一の私は、これは一般的な質問です知っているとあなたたちのほとんどは、質問だけでなく、その動的なプログラミングを知っているだろう
時間
に任意の時点でいずれかの下または右に移動することができます。私はここで再帰的なコードを試していますが、正しい出力を得ています。私の再帰コードには何がありませんか?私は反復的または動的プログラミングのアプローチを望んでいません。私は自分自身で構築しようとしています。不正な出力を示します。
例 -
1 2
1 1
答えは3
おかげであるように、それはどこ2として出力を提供します。
def minPathSum(self, grid):
"""
:type grid: List[List[int]]
:rtype: int
"""
def helper(i,j,grid,dp):
if i >= len(grid) or j >= len(grid[0]):
return 0
print grid[i][j]
return grid[i][j]+min(helper(i+1,j,grid,dp),helper(i,j+1,grid,dp))
dp = [[0] * len(grid[0]) for i in range(len(grid))]
val = helper(0,0,grid,dp)
print dp
return val
"間違った出力"が表示されていることを前提としていますか?とにかく、問題が何であるか、予想される出力が何であるかを明記していないため、あなたの質問ははっきりしません。あなたが投稿したのはあなたの解決策です...何か – smac89
編集されました。追加された質問と例 – Ryo
「答えは1ですね? –