classSolution:defFindGreatestSumOfSubArray(self , array: List[int])->int:# write code herefor i inrange(1,len(array)):
array[i]+=max(array[i-1],0)returnmax(array)
2.连续子数组最大和(二)
classSolution:defFindGreatestSumOfSubArray(self , array: List[int])-> List[int]:# write code here
left =0
right =0
bl =0
br =0
maxn = array[0]
temp =[0for i inrange(len(array))]
temp[0]= array[0]for i inrange(1,len(array)):
right +=1
temp[i]=max(array[i], temp[i-1]+array[i])if temp[i-1]<0:
left = right
if temp[i]> maxn or temp[i]== maxn and(right - left)>(br - bl):
bl = left
br = right
maxn = temp[i]
res =[]for i inrange(bl, br+1):
res.append(array[i])return res
3.跳台阶
classSolution:defjumpFloor(self , number:int)->int:# write code here
res =[0for i inrange(number+1)]
res[0]=1
res[1]=1for i inrange(2,number+1):
res[i]= res[i-1]+ res[i-2]return res[-1]
4.斐波那契数列
classSolution:defFibonacci(self , n:int)->int:# write code here
array =[0for i inrange(n)]
array[0], array[1]=1,1for i inrange(2,n):
array[i]= array[i-1]+ array[i-2]return array[-1]
5.跳台阶(二)
classSolution:defjumpFloorII(self , number:int)->int:# write code here
res =[0for i inrange(number+1)]
res[0], res[1]=1,1for i inrange(2,number+1):
res[i]=sum(res[0:i])return res[-1]
6.矩形覆盖
classSolution:defrectCover(self , number:int)->int:# write code hereif number ==0:return0
array =[0for i inrange(number+1)]
array[0]=1
array[1]=1for i inrange(2,number+1):
array[i]= array[i-1]+ array[i-2]return array[-1]
7.买股票问题
classSolution:defmaxProfit(self , prices: List[int])->int:# write code here
cost, priced =float('+inf'),0for price in prices:
cost =min(cost, price)
priced =max(priced, price-cost)return priced