力扣热门100题之最大子数组和

最优解法:Kadane 算法(一遍遍历)

核心思想

  • 遍历数组时,维护当前最大和
  • 如果前面的和是负数 ,只会拖累当前数,直接抛弃前面
  • 否则,把当前数加进去
  • 全程记录最大值

完整代码实现:

java 复制代码
class Solution {
    public int maxSubArray(int[] nums) {
        if(nums==null || nums.length == 0){
            return 0;
        }

        // 当前连续子数组的最大和
        int currentMax = nums[0];
        // 全局最大和(最终答案)
        int globalMax = nums[0];

        // 从第 2 个数开始遍历
        for(int i = 1;i<nums.length;i++){
            // 核心:
            // 如果 currentMax 是负数 → 抛弃前面,从当前数重新开始
            // 如果 currentMax 是正数 → 加上当前数,继续延长子数组
            currentMax = Math.max(nums[i], currentMax + nums[i]);

            // 更新全局最大值
            globalMax = Math.max(globalMax, currentMax);
        }
        return globalMax;
    }
}

最简单记忆口诀

前面是负的就扔掉,前面是正的就加上。 全程记录最大值。

相关推荐
地平线开发者2 小时前
【模型轻量化专题】衡量模型轻量性的指标
算法
学习星球6 小时前
OFDM技术精讲:正交性推导、循环前缀原理与80行Python链路仿真(附实测数据)
算法·面试·前端框架
alphaTao12 小时前
LeetCode 每日一题 2026/8/24-2026/8/30
python·算法·leetcode
Interview Aid11212 小时前
TikTok OA 四题分享|半小时内 AC,题目基本都是实现题
java·开发语言·算法·面试·职场和发展
顶点多余21 小时前
那些在算法中适合巩固的知识点---1
java·前端·算法
罗西的思考1 天前
【Agentic RL / 强化学习框架】Molt 设计解读
人工智能·算法·机器学习
hahaha60161 天前
HLS高层次综合设计技巧--C++类和模板
图像处理·人工智能·算法·计算机视觉
多弗朗皮卡丘1 天前
算法详解4:买卖股票的最佳时机系列(上)
算法
维克兜率天1 天前
【维克】动量指标家族:RSI、ROC、CCI、Momentum全面解析
python·算法
AI情绪识别开源1 天前
检信 AI 智能推广平台(代号:JX-Promote)
人工智能·算法·erlang