矩阵的最小路径和
題目:給定一個矩陣m,從左上角開始每次都只能向下或者向右走,最后到達(dá)右下角的位置,路徑上所有的數(shù)字累加起來就是路徑和,返回所有路徑中最小的路徑和。
基本思路:生成和m同樣大小的矩陣dp,dp[i][j]的值表示從左上角走到位置(i, j)的最小路徑和,矩陣的第一行和第一列的值可以先確定,其他的位置dp[i][j]的值等于min(dp[i-1][j], dp[i][j-1]) + m[i][j]。
def minPathSum(m):if m == None or m[0] == None or len(m) == 0 or len(m[0]) == 0:return 0row = len(m)col = len(m[0])dp = [[0]*col]*rowfor i in range(1,row):dp[i][0] = dp[i-1][0] + m[i][0]for j in range(1,col):dp[0][j] = dp[0][j-1] + m[0][j]for i in range(row):for j in range(col):dp[i][j] = min(dp[i-1][j],dp[i][j-1]) + m[i][j]return dp[row-1][col-1]
?
總結(jié)
- 上一篇: 排成一条线的纸牌博弈问题
- 下一篇: 在单链表和双链表中删除倒数第K个节点