题目来源:牛客网
解题思路
蛮力法:直接遍历数组求出连续子数组的最大和。
为了时间复杂度为O(1)——
- 求出和小于0时,就直接舍弃重新开始计算(因为一个值加一个负数肯定会比原来的值小);
- 如果整个数组没有大于0的数,那么就求数组中的最大值;
- 用一个参数(max_ret)存放当前最大值(和),一个参数(sum_tmp)存放当前正在累加计算中的和;如果和是正常增加的就继续累加,如果和变成负数了,就从当前数值重新计算;每次更新sum_tmp,都要对比一下max_ret,如果比max_ret大,就更新最大值。
Python
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param array int整型一维数组
# @return int整型