分析:使用动态规划来解题
- 定义储存最大子序和的变量a,定义作相加计算的变量sum。
- 遍历数组,当sum>0时将当前num累加。
- 当sum<0时重新计算,num的值赋给sum。
- 每层遍历的最后都需要将a与sum作比较,取最大值。
class Solution {
public int maxSubArray(int[] nums) {
int a = nums[0];
int sum = 0;
for(int num : nums){
if(sum>=0){
sum+=num;
}else{
sum=num;
}
a=Math.max(a,sum);
}
return a;
}
}