不同路径 class Solution: def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int: f=[[1]*n]+[[1]+[0]*(n-1) for _ in range(m-1)] #设置为1的边界和路径 print(f) for i in range(1,m): for j in range(1,n): f[i][j]=f[i-1][j]+f[i][j-1] #左边与上边的和等于此时的路径数量,依次填入 return f[m-1][n-1] 爬楼梯 class Solution: def climbStairs(self, n: int) -> int: dp={} dp[1]=1 dp[2]=2 for i in range(3,n+1): dp[i]=dp[i-1]+dp[i-2] return dp[n] 子集 class Solution: def climbStairs(self, n: int) -> int: dp={} dp[1]=1 dp[2]=2 for i in range(3,n+1): dp[i]=dp[i-1]+dp[i-2] return dp[n]