給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。
說明:每次只能向下或者向右移動一步。
class solution:
def minpathsum(self, grid) -> int:
m = len(grid)
if m == 0 :
return 0
n = len(grid[0])
li = [1<<31 for _ in range(n)]
li[0] = 0
for i in range(m):
for j in range(n):
if j==0:
li[j] +=grid[i][j]
else:
li[j] = min(li[j],li[j-1]) + grid[i][j]
#print(li)
return li[-1]
假設你正在爬樓梯。需要 n 階你才能到達樓頂。
每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是乙個正整數
class solution:
def climbstairs(self, n: int) -> int:
li = [0 for _ in range(n+1)]
li[1] = 1
if n<=1:
return li[n]
li[2] = 2
for i in range(3,n+1):
li[i] = li[i-1] + li[i-2]
return li[n]
Leetcode 最小路徑和
題目描述 乙個包含非負整數的 m n 的網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。樣例輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。官方題解 解題思路 1 因為每個網格都有向下或向右2...
Leetcode 最小路徑和
64.最小路徑和 先算第一行從前乙個節點到下乙個節點之和 for int i 1 i grid 0 length i 再算第一列從前乙個節點到下乙個節點之和 for int j 1 j grid.length j 接下來從 1,1 算從上乙個節點到當前節點之和 for int i 1 i grid....
leetcode 最小路徑和
1.動態規劃 對於 i,j 其入口只有 i 1,j 和 i,j 1 兩個,故到達 i,j 的最小路徑為min dp i 1 j dp i j 1 i,j 故狀態轉移方程為 dp i j min dp i 1 j dp i j 1 i,j 但需要注意初始化 對於上邊界,其路徑只能來自於左邊 對於左邊界...