https://leetcode.com/problems/maximum-subarray/
求最大连续子数组的最大和
两个变量,一个curMax 表示走到当前位置的能加到的最大值,这个值是 max(curMax+nums[i],curMax)。另一个res是最终的结果集,res的表示方式是max(curMax,res)
public int maxSubArray(int[] nums) {
long res = Integer.MIN_VALUE;
long maxSum = Integer.MIN_VALUE;
for (int i = 0; i < nums.length; i++) {
maxSum = Math.max(maxSum + nums[i], nums[i]);
res = Math.max(res, maxSum);
}
return (int)res;
}
Kadane算法:https://blog.csdn.net/lengxiao1993/article/details/52303492
网友评论