1.连续子数组的和
class Solution:
def FindGreatestSumOfSubArray(self , array: List[int]) -> int:
# write code here
for i in range(1,len(array)):
array[i] += max(array[i-1], 0)
return max(array)
2.连续子数组最大和(二)
class Solution:
def FindGreatestSumOfSubArray(self , array: List[int]) -> List[int]:
# write code here
left = 0
right = 0
bl = 0
br = 0
maxn = array[0]
temp = [0 for i in range(len(array))]
temp[0] = array[0]
for i in range(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 in range(bl, br+1):
res.append(array[i])
return res
3.跳台阶
class Solution:
def jumpFloor(self , number: int) -> int:
# write code here
res = [0 for i in range(number+1)]
res[0] = 1
res[1] = 1
for i in range(2,number+1):
res[i] = res[i-1] + res[i-2]
return res[-1]
4.斐波那契数列
class Solution:
def Fibonacci(self , n: int) -> int:
# write code here
array = [0 for i in range(n)]
array[0], array[1] = 1, 1
for i in range(2,n):
array[i] = array[i-1] + array[i-2]
return array[-1]
5.跳台阶(二)
class Solution:
def jumpFloorII(self , number: int) -> int:
# write code here
res = [0 for i in range(number+1)]
res[0], res[1] = 1, 1
for i in range(2,number+1):
res[i] = sum(res[0:i])
return res[-1]
6.矩形覆盖
class Solution:
def rectCover(self , number: int) -> int:
# write code here
if number == 0: return 0
array = [0 for i in range(number+1)]
array[0] = 1
array[1] = 1
for i in range(2,number+1):
array[i] = array[i-1] + array[i-2]
return array[-1]
7.买股票问题
class Solution:
def maxProfit(self , prices: List[int]) -> int:
# write code here
cost, priced = float('+inf'), 0
for price in prices:
cost = min(cost, price)
priced = max(priced, price-cost)
return priced
原文地址:https://www.jb51.cc/wenti/3281923.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。