給定乙個包含非負整數的m*n網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。
說明:每次只能向下或者向右移動一步。
輸入:
[ [1,3,1],
[1,5,1],
[4,2,1]
]輸出:7(即最小路徑和為1+3+1+1+1=7 )
1、用同樣的m*n網格記錄從左上角到[i,j]的路徑
# -*- coding:utf-8 -*-
class
solution
:def
minpathsum
(self,grid)
: m =
len(grid)
n =len(grid[0]
) f =[[
0]*n for i in
range
(m)]
f[0]
[0]= grid[0]
[0]for i in
range(1
,m):
f[i][0
]= grid[i][0
]+f[i-1]
[0]for j in
range(1
,n):
f[0]
[j]= grid[0]
[j]+f[0]
[j-1
]for i in
range(1
,m):
for j in
range(1
,n):
f[i]
[j]=
min(f[i-1]
[j],f[i]
[j-1])
+grid[i]
[j]return f[m-1]
[n-1]c=
[[1,
3,1]
,[1,
5,1]
,[4,
2,1]
] result = solution(
)print
(result.minpathsum(c)
)
Leetcode 每日一練
最小棧 設計乙個支援 push pop top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 輸入 minstack push push push getmin pop top ge...
Leetcode 每日一練
leetcode 每日一練 擁有最多糖果的孩子 給你乙個陣列 candies 和乙個整數 extracandies 其中 candies i 代表第 i 個孩子擁有的糖果數目。對每乙個孩子,檢查是否存在一種方案,將額外的 extracandies 個糖果分配給孩子們之後,此孩子有 最多 的糖果。注意...
Leetcode 每日一練
猜數字 小a 和 小b 在玩猜數字。小b 每次從 1,2,3 中隨機選擇乙個,小a 每次也從 1,2,3 中選擇乙個猜。他們一共進行三次這個遊戲,請返回 小a 猜對了幾次?輸入的guess陣列為 小a 每次的猜測,answer陣列為 小b 每次的選擇。guess和answer的長度都等於3。示例 1...