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

张开发
2026/4/6 1:59:52 15 分钟阅读

分享文章

力扣热门100题之最大子数组和
最优解法Kadane 算法一遍遍历核心思想遍历数组时维护当前最大和如果前面的和是负数只会拖累当前数直接抛弃前面否则把当前数加进去全程记录最大值完整代码实现class Solution { public int maxSubArray(int[] nums) { if(numsnull || nums.length 0){ return 0; } // 当前连续子数组的最大和 int currentMax nums[0]; // 全局最大和最终答案 int globalMax nums[0]; // 从第 2 个数开始遍历 for(int i 1;inums.length;i){ // 核心 // 如果 currentMax 是负数 → 抛弃前面从当前数重新开始 // 如果 currentMax 是正数 → 加上当前数继续延长子数组 currentMax Math.max(nums[i], currentMax nums[i]); // 更新全局最大值 globalMax Math.max(globalMax, currentMax); } return globalMax; } }最简单记忆口诀前面是负的就扔掉前面是正的就加上。全程记录最大值。

更多文章