1.贪心算法
class Solution {
public int maxSubArray(int[] nums) {
int max=nums[0];
for(int i=1;i<nums.length;i++){
if(nums[i-1]>0) nums[i]+=nums[i-1];
max=Math.max(max,nums[i]);
}
return max;
}
}
终于来一个简单题了,这个题就是在每个i位置获得当前可以得到的最大值,
如果前面的数字大于0,就直接对当前num[i]进行累加,再判断与max的大小
[-2,1,-3,4,-1,2,1,-5,4]直接对当前num[i]进行累加后,其实每个num[i]表示的就是到i结束,这个数组的最大连续子序和
这个数大于0,对于后面的数而言,才有累加的必要