62 不同路径
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
dp = [[0]*n for i in range(m)]
for j in range(n):
dp[0][j] = 1
for i in range(1,m):
dp[i][0] = 1
for j in range(1,n):
dp[i][j] = dp[i-1][j] + dp[i][j-1]
return dp[-1][-1]
70 爬楼梯
class Solution:
def climbStairs(self, n: int) -> int:
dp = [0]*(n+1)
dp[0] = 1
dp[1] = 1
for i in range(2,n+1):
dp[i] = dp[i-1] + dp[i-2]
return dp[-1]
78 子集
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
n = len(nums)
res = []
def backtrack(nums, start, track):
res.append(track[:])
for i in range(start, n):
track.append(nums[i])
backtrack(nums, i+1, track)
track.pop()
backtrack(nums, 0, [])
return res