0
点赞
收藏
分享

微信扫一扫

【力扣-数据结构】【第 1 天】53. 最大子数组和

标题53. 最大子数组和
难度简单
天数第1天,第2/2题
数据结构数组

示例 1:

示例 2:

示例 3:

提示:

  • 1 <= nums.length <= 105
  • -104 <= nums[i] <= 104

题解:

max:记录最大和

sum:用于记录累加值

每次都执行 sum = sum + nums[i];用于计算累加值

当如果sum < 0,说明即使加上也不会大于当前i位置的值,
就重置sum = 0

每完成一步就对比一下maxsum
取到最大值再赋值给max

另外动态规划写法可参考:
【力扣-动态规划入门】【第 5 天】53. 最大子数组和

class Solution {
    //数据结构 第1天  2/2  数组
    public int maxSubArray(int[] nums) {
        int m = nums.length;
        int max = nums[0];
        int sum = 0;
        for(int i = 0 ;i < m;i++){
            if(sum < 0){
                sum = 0;
            }
            sum += nums[i];
            max = Math.max(max,sum);
        }
        return max;
    }
}

举报

相关推荐

0 条评论