侧边栏壁纸
博主头像
阿里灰太狼博主等级

You have to believe in yourself . That's the secret of success.

  • 累计撰写 104 篇文章
  • 累计创建 50 个标签
  • 累计收到 12 条评论

目 录CONTENT

文章目录

leetcode-53. 最大子序和

阿里灰太狼
2021-11-16 / 0 评论 / 0 点赞 / 97 阅读 / 385 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2021-11-16,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

cj52.pngcj53.png

JAVA解法

// 动态规划
class Solution {
    public int maxSubArray(int[] nums) {
        int pre = 0, maxAns = nums[0];
        for (int x : nums) {
            // 返回加上 x 之后的与 x 本身大的那个
            pre = Math.max(pre + x, x);
            // 比较现在最新的最大值与上一次的最大值并返回大的那个
            maxAns = Math.max(maxAns, pre);
        }
        return maxAns;
    }
}

leetcode原题: 53. 最大子序和

解法分析

本题用动态规划,先假设 nums 数组中第一个为当前最大的和。对 nums 数组进行遍历,用 pre 变量加上每一个从 nums 数组提取出来的值,再取最大值作为 pre 当前的值,这一步可以理解为考虑是否加上下一个值。

然后再把 pre 与最初设置好的最大的和比较,并返回最大的,用的是 Math.max() 方法,加到最后即为最大和。

0

评论区