50. Pow(x, n)
class Solution(object):def myPow(self, x, n):""":type x: float:type n: int:rtype: float"""# 终止条件if n==0:return 1# 三种情况# n<0 =n的-x分之一if n<0:x=1/xn=-n# x是奇数 x*x的偶数次方if n%2:return x *self.myPow(x,n-1)#x为偶数 =x的平方的二分之n的次方return self.myPow(x*x,n /2)
22. 括号生成
class Solution(object):def generateParenthesis(self, n):""":type n: int:rtype: List[str]"""# 保存结果ans=[]def dfs(l,r,n,rec):# 终止条件 判断左右是否满足括号,满足保存if l==n and r==n:ans.append(rec)# 分治两个子问题,左括号和右括号if l<n:# 小于就加(:dfs(l+1,r,n,rec+'(')if r<l:dfs(l,r+1,n,rec+')')dfs(0,0,n,"")return ans
路径
0路径 - 蓝桥云课 (lanqiao.cn)
动态规划
# import math
# a=1
# gcb=math.gcd(2,4)
# print(gcb)
# 最大公约数
def gcd(a,b):# 终止条件if b==0:return areturn gcd(b,a%b)
def gbs(a,b):return a*b//(gcd(a,b))
# 从1开始
lst=[float('inf')]*2023
lst[1]=0
# print(lst)
'''
dp:lst[j]=min(lst[j],lst[i]+X
'''
for i in range (1,2022):for j in range (i+1,22+i):# 限制条件超出范围if j >2021:breaklst[j]=min(lst[j],lst[i]+gbs(i,j))
print(lst[2021])