题解 | #连续子数组最大和#

连续子数组最大和

http://www.nowcoder.com/practice/1718131e719746e9a56fb29c40cc8f95

求解连续子数组的最大和,问题可以分解为如下步骤:

  • 数组长度为0,返回0
  • 数组长度为1,返回数组第一个值
  • 数组长度大于1,从前往后,判断数组(第i个值+第i-1个值)于(第i个值)的大小,将其中较大值赋值给当前数组的第i个值。即计算数组从第一个值,到第i个值的最大子数组。
def max_sum(n, dp):
    if n == 0:
        return 0
    elif n == 1:
        return dp[0]
    else:
        for i in range(1, n):
                dp[i] = max(dp[i - 1] + dp[i], dp[i])
        return max(dp[:])

n = int(input())
s = input()
s = s.split()
dp = [int(s[i]) for i in range(len(s))]
print(max_sum(n, dp))
全部评论

相关推荐

项目经历怎么增加啊,跟着网上视频做项目能写进简历吗?
小浪_Coding:26届还没实习嘛? 一个项目也不太够, 找实习都难, 秋招没法投
简历中的项目经历要怎么写
点赞 评论 收藏
分享
08-08 16:33
唐山学院 Java
职场水母:首先,简历太长,对于实习和应届找工作,hr一眼扫的是学历,技术看实习,你写的技术栈字太多了,尽量用一句话概括不用写那么详细,技术面的时候会问的,而且技术栈都会在实习或者项目里体现,你要做的是,把你的简历浓缩为一页,删除没用的东西,比如实践经历,自我评价,这些纯废话,没用,专业技能写的太离谱,你真的熟练掌握了吗,建议都写熟悉,找工作和写论文不一样,追求的是干练和实用,把实习经历和项目提前,把掌握的技术栈写到最后,然后去找实习,
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务