美文网首页
数组中连续子数组的最大和(LeetCode53. 最大子序和)

数组中连续子数组的最大和(LeetCode53. 最大子序和)

作者: 雁阵惊寒_zhn | 来源:发表于2020-11-15 21:04 被阅读0次

题目

解析

时间复杂为O(n)的算法。遍历数组的每个元素,记录当前元素的加和结果sum,和记录遍历到当前元素的最大和result。假设当前数组nums,遍历到下标为i的元素上,如果之前的sum值小于0,sum设为nums[i],因为与负值相加只会让结果更小。sum大于等于0时,sum设为sum与nums[i]的和,这时的结果会更大。比较sum值和result值,如果sum更大,更新result记录下这个更大的值。

代码

public int maxSubArray(int[] nums) {
    int result = nums[0]; int sum = nums[0];
    for(int i = 1; i < nums.length; ++i){
        if(sum < 0){
            sum = nums[i];
        } else {
            sum = sum + nums[i];
        }
        if(sum > result){
            result = sum;
        }
    }
    return result;
}

相关文章

  • 数组中连续子数组的最大乘积(LeetCode152. 乘积最大子

    题目 解析 在了解连续子数组最大乘积之前,请先参考数组中连续子数组的最大和(LeetCode53. 最大子序和)[...

  • 53. 最大子序和

    题目链接: 53. 最大子序和 题目描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最...

  • Leetcode 53 最大子序和

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

  • 刷leetCode算法题+解析(六)

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

  • LeetCode 每日一题 [25] 最大子序和

    LeetCode 最大子序和 [简单] 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包...

  • 【LeetCode】53.最大子序和

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

  • 100天代码挑战:DAY4

    LeetCode 53. 最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含...

  • LeetCode-53-最大子序和

    LeetCode-53-最大子序和 题目 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少...

  • 2019-02-12 Day38

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

  • leetcode_p53_Maximum Subarray ——

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

网友评论

      本文标题:数组中连续子数组的最大和(LeetCode53. 最大子序和)

      本文链接:https://www.haomeiwen.com/subject/nqblvktx.html