这也是三月做的题,我竟然自己给它写出来了,感动哭了
不过因为没有判断只有一个数的情况和初始值一开始写错了,max初始值就应该设成第一个元素的大小。
public int maxSubArray(int[] nums) {
int[] maxarr=new int[nums.length];
maxarr[0]=nums[0];
int max=nums[0];
if(nums.length==1){
return nums[0];
}
for(int i=1;i<nums.length;i++){
maxarr[i]=Math.max(nums[i],maxarr[i-1]+nums[i]);
if(max<maxarr[i]){
max=maxarr[i];
}
}
return max;
}
据说这是动态规划,我其实一直都不太会,但是这道题还好,就是这次的结果和上一次的有些关系