题目
方法1
暂时只想到这种方法
- 简单分析,要计算最大子列,最暴力的方法就是把所有的子列都计算一遍, 但是时间复杂度略高。
思路:
给定一个序列,我们只要把当前的sum和下一个要加的数做一个比较就行了。- 初始化
mxa = sum = 序列第一个数
- 当
sum > 0
,子列和才存在继续增大的可能
- 初始化
def MaxSub(sub: []):
"""整数序列:sub"""
sum = sub[0]
max = sum
for curNum in sub[1:]:
if sum > 0:
if sum > max:
max = sum
sum += curNum
else:
sum = curNum
if sum > max:
max = sum
print(max)
N = int(input())
sub = [int(i) for i in input().split(' ')]
MaxSub(sub)