53. 最大子序和题目描述给你一个整数数组nums请你找出一个具有最大和的连续子数组子数组最少包含一个元素返回其最大和。子数组是数组中的一个连续部分。示例 1输入nums [-2,1,-3,4,-1,2,1,-5,4] 输出6 解释连续子数组 [4,-1,2,1] 的和最大为 6 。示例 2输入nums [1] 输出1示例 3输入nums [5,4,-1,7,8] 输出23提示1 nums.length 105-104 nums[i] 104**进阶**如果你已经实现复杂度为O(n)的解法尝试使用更为精妙的分治法求解。图解思路代码classSolution{publicintmaxSubArray(int[]nums){// result 记录目前找到的最大子数组和// 初始化为最小值避免全负数情况出错intresultInteger.MIN_VALUE;// count 表示当前连续子数组的和intcount0;// 遍历数组for(inti0;inums.length;i){// 当前元素加入连续子数组countnums[i];// 更新最大和if(countresult){resultcount;}// 如果当前和已经小于 0// 继续累加只会让后面更小// 直接舍弃当前子数组从下一个重新开始if(count0){count0;}}// 返回最大连续子数组和returnresult;}}
LeetCode--53. 最大子序和(贪心算法)
发布时间:2026/7/11 3:40:03
53. 最大子序和题目描述给你一个整数数组nums请你找出一个具有最大和的连续子数组子数组最少包含一个元素返回其最大和。子数组是数组中的一个连续部分。示例 1输入nums [-2,1,-3,4,-1,2,1,-5,4] 输出6 解释连续子数组 [4,-1,2,1] 的和最大为 6 。示例 2输入nums [1] 输出1示例 3输入nums [5,4,-1,7,8] 输出23提示1 nums.length 105-104 nums[i] 104**进阶**如果你已经实现复杂度为O(n)的解法尝试使用更为精妙的分治法求解。图解思路代码classSolution{publicintmaxSubArray(int[]nums){// result 记录目前找到的最大子数组和// 初始化为最小值避免全负数情况出错intresultInteger.MIN_VALUE;// count 表示当前连续子数组的和intcount0;// 遍历数组for(inti0;inums.length;i){// 当前元素加入连续子数组countnums[i];// 更新最大和if(countresult){resultcount;}// 如果当前和已经小于 0// 继续累加只会让后面更小// 直接舍弃当前子数组从下一个重新开始if(count0){count0;}}// 返回最大连续子数组和returnresult;}}