动态规划
public static int maxSubArray(int[] nums) {
int temp=0,maxM=nums[0];
for (int x:nums){
temp=Math.max(temp+x,x);
maxM=Math.max(maxM,temp);
}
return maxM;
}
学以致用
- 更新每一次数组元素,上次一加当前元素与当前元素比较,大于当前元素,更新当前元素,否则不变。
举例:原数组:[-2,1,-3,4,-1,2,1,-5,7]
变换后的数组:-2,1,-2,4,3,5,6,1,8
取变换后数组最大元素,即为8