给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
思路:动态规划。
要求最大和可知,如果前面的i-1个元素和为负数则应该舍弃不要,如果大于0,则前面的和加上当前的数。
class Solution {
public int maxSubArray(int[] nums) {
int sum = 0;
int ans = Integer.MIN_VALUE;
for(int num : nums){
if(sum > 0){
sum = sum + num;
}else{
sum = num;
}
ans = Math.max(sum,ans);
}
return ans;
}
}