给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组是数组中的一个连续部分。
分析题目
他是什么?
连续子树相加,求最大和
怎么做?
所有数相加,然后和最大数比较
public class MaxSubarraySum {
public static int maxSubArray(int[] nums) {
if (nums == null || nums.length == 0) {
return 0; // 如果数组为空或长度为0,返回0
}
int sumMax = nums[0];
int current = nums[0];
for (int i = 1; i < nums.length; i++) {
// 当前数组和加上当前元素小于当前元素,则重新开始计算子数组
current = Math.max(nums[i], current + nums[i]);
// 若添加当前元素后,当前数组和变大,则更新最大子数组和
sumMax = Math.max(sumMax, current);
}
return sumMax;
}
}
这个遍历方法真的很像毛毛虫向前爬!!!
