class Solution {
public int maxSubArray(int[] nums) {
if(nums.length == 1){
return nums[0];
}
// 存放结果
int sum = Integer.MIN_VALUE;
// 记录当前元素总和,如果当前元素总和小于等于0,那么该数再加上其他数肯定变小,不是最大的连续子数组,此时需要重新向后计算当前元素的总和。
int count = 0;
for(int i=0; i<nums.length; i++){
count += nums[i];
// 重新赋值最大的和
sum = Math.max(sum,count);
// 如果当前元素和小于等于0,需要重新向后计算
if(count <=0 ){
count = 0;
}
}
return sum;
}
}
力扣53题 最大子数组和 Java版
最新推荐文章于 2024-08-23 11:46:54 发布
该代码实现了一个求解数组中最大子数组和的问题,使用了动态规划的思想。当数组长度为1时,返回数组的第一个元素。遍历数组过程中,维护当前元素的总和count,用sum存储当前最大子数组和。如果count小于等于0,重置count为0,继续计算。最后返回sum作为结果。
摘要由CSDN通过智能技术生成