leetcode(28,29)-最小路径和
最小路径和
给定一个包含非负整数的 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]

浙公网安备 33010602011771号