53. 最大子序和

原题链接:https://leetcode-cn.com/problems/maximum-subarray/

class Solution {
    // 动态规划
    public int maxSubArray(int[] nums) {
        // 记录当前为位置的前一个位置已经得到的最大值
        int pre = 0;
        // 记录结果
        int res = nums[0];
        for (int i = 0; i< nums.length; i++){
            // 当前位置的最大值= 前一个加当前值与不加当前值比较选大的那一个
            pre = Math.max(pre + nums[i], nums[i]);
            // 不断替换结果,保留每次结果的那个较大值
            res = Math.max(pre, res);
        }
        return res;
    }
}

 难点:前一个值加当前这个值,取最大的思维,动态规划这类思维也是比较重要的。

posted on 2020-12-25 13:38  靠自己的骨头长肉  阅读(46)  评论(0编辑  收藏  举报