Leetcode-53. 最大子序和

题目描述:

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

示例:

输入: [-2,1,-3,4,-1,2,1,-5,4],

输出: 6

解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

解法:

1.动态规划

写出动态规划公式dp[i] = max(dp[i-1]+nums[i],nums[i])


2.贪心

初始化sum为0 ans为nums[0]

如果sum<=0 代表sum对结果是负增益 将sum的值设为当前数组值 ans的值为sum与ans的较大值

如果sum>0 代表sum对结果是正增益 将sum的值设为(当前数组值+sum) ans的值为sum与ans的较大值

最终返回ans



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 53. 最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其...
    傅晨明阅读 237评论 0 0
  • 最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。...
    或无言阅读 217评论 0 0
  • 写在前沿:本文代码均使用C语言编写 Description:给定一个整数数组 nums ,找到一个具有最大和的连续...
    小黄大大阅读 254评论 0 1
  • 题目 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例...
    多彩海洋阅读 105评论 1 1
  • 曾经,我们相遇, 曾经,我们离开, 曾经,我们走远, 今天,你我重逢, 然,时过境迁, 谁又还在原地坚持盘旋? 面...
    妖居终南山阅读 270评论 0 1