LeetCode每日一練 最小路徑和

2021-10-08 10:54:50 字數 1090 閱讀 2847

給定乙個包含非負整數的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...