前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode-53. 最大子序和

leetcode-53. 最大子序和

作者头像
灰太狼学Java
发布2022-06-17 10:26:37
1720
发布2022-06-17 10:26:37
举报
文章被收录于专栏:Java学习驿站

JAVA解法

代码语言:javascript
复制
// 动态规划
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() 方法,加到最后即为最大和。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JAVA解法
  • 解法分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档