前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >连续子数组的最大和

连续子数组的最大和

作者头像
致Great
发布2018-04-11 16:33:32
8280
发布2018-04-11 16:33:32
举报
文章被收录于专栏:程序生活程序生活

题目1 连续子数组的最大和

  • 描述: 输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。
  • 思路 最大和连续子数组一定有如下几个特点: 1、第一个不为负数 2、如果前面数的累加值加上当前数后的值会比当前数小,说明累计值对整体和是有害的;如果前面数的累加值加上当前数后的值比当前数大或者等于,则说明累计值对整体和是有益的。 步骤: 1、定义两个变量,一个用来存储之前的累加值,一个用来存储当前的最大和。遍历数组中的每个元素,假设遍历到第i个数时: ①如果前面的累加值为负数或者等于0,那对累加值清0重新累加,把当前的第i个数的值赋给累加值。 ②如果前面的累加值为整数,那么继续累加,即之前的累加值加上当前第i个数的值作为新的累加值。 2、判断累加值是否大于最大值:如果大于最大值,则最大和更新;否则,继续保留之前的最大和。 剑指offer之连续子数组的最大和(Python)
  • 实现
代码语言:javascript
复制
def findx(array):
    temp=array[0]
    curSum=0
    for num in array:
        if curSum<=0:
            curSum=num
        else:
            curSum+=num
        if curSum>temp:
            temp=curSum
    return temp

题目1

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.03.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目1 连续子数组的最大和
  • 题目1
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档