最大子序和(21-03-15)

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

示例 1:
输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。

示例 2:
输入:nums = [1]
输出:1

示例 3:
输入:nums = [0]
输出:0

示例 4:
输入:nums = [-1]
输出:-1

示例 5:
输入:nums = [-100000]
输出:-100000

提示:

  • 1 <= nums.length <= 3 * 104
  • -105 <= nums[i] <= 105
解题思路

1、先看是和相加值大,还是数值本身就比和大
2、然后看,假如 是相加得和更大,那么max 只会是最大得那个

class Solution {
    public int maxSubArray(int[] nums) {
        int pre=0,max=nums[0];
        for(int x:nums){
            pre=Math.max(pre+x,x); //前面得值相加之和,和后一个值比较,取大得那个
            max=Math.max(max,pre);//前面比较得到得值,和之前max比较,取大得那个
        }
       return max;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和 https:...
    Shimmer_阅读 1,346评论 0 1
  • 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例 1:...
    e8889d737099阅读 1,085评论 0 0
  • 一、问题 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 ...
    Djbfifjd阅读 2,338评论 0 2
  • 写在前沿:本文代码均使用C语言编写 Description:给定一个整数数组 nums ,找到一个具有最大和的连续...
    小黄大大阅读 1,751评论 0 1
  • 夜莺2517阅读 127,811评论 1 9

友情链接更多精彩内容