力扣面试150题--最大子数组和

Day 79

题目描述

力扣面试150题--最大子数组和_第1张图片

思路

比较简单,我们从左向右遍历一次,记录当前元素的前一个元素之前的最大子序列和leftbe和目前已遍历元素的最大子序列和leftmax,
首先获取新的leftbe,即取max(leftbe+当前元素,当前元素)
判断更新后的leftbe是否大于leftmax,大于就更新
最后返回leftmax

class Solution {
    public int maxSubArray(int[] nums) {
        int leftmax=nums[0];
        int leftbe=nums[0];
        for(int i=1;i<nums.length;i++){
            int x=leftbe+nums[i];
            if(x>nums[i]){
                leftbe=x;
            }
            else{
                leftbe=nums[i];
            }
            if(leftbe>leftmax){
                leftmax=leftbe;
            }
        }
        return leftmax;
    }
}

你可能感兴趣的:(力扣面试150题--最大子数组和)