要求一個數組的連續子數組的最大和,可以使用動態規劃的方法。
假設數組為nums,定義一個變量sum來表示當前連續子數組的和,初始化為0。再定義一個變量maxSum來表示最大和,初始化為數組中第一個元素。
然后遍歷數組,對于數組中的每一個元素num:
最后,返回maxSum即為連續子數組的最大和。
以下是Java代碼實現:
public int maxSubArray(int[] nums) {
int sum = 0;
int maxSum = nums[0];
for (int num : nums) {
if (sum >= 0) {
sum += num;
} else {
sum = num;
}
maxSum = Math.max(maxSum, sum);
}
return maxSum;
}
使用該方法,可以在時間復雜度為O(n)的情況下求得連續子數組的最大和。