53. 最大子序和

每一步都找到当前元素(自己)的最大子序列
有两种可能

  • 当前元素和前面的子序列和合并
  • 不和前面的合并
    dp数组中存储的的每个值是以当前元素结尾的最大的子序列和
    用一个变量动态的保存最大子序列的值,节省空间。
class Solution {
    public int maxSubArray(int[] nums) {
        int result=nums[0];
        int sum=0;
        for(int i=0;i<nums.length;i++){
            sum=Math.max(nums[i],nums[i]+sum);
            result=Math.max(sum,result);
        }
        return result;
    }
}

js版本

var maxSubArray = function(nums) {
    let result=nums[0];
    let sum=0;
    for(let n of nums){
        sum=Math.max(n,n+sum);
        result=Math.max(result,sum);
    }
    return result;
};

-2,1,-3,4,-1,2
比如,以-3结尾的最大子序列和是-2;
这道题主要是理解动态规划的思想。

posted @ 2021-05-22 16:24  看鱼游  阅读(39)  评论(0)    收藏  举报