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]
posted @ 2020-09-11 17:43  木子士心王大可  阅读(92)  评论(0)    收藏  举报