53-Maximum-Subarray
0x0 题目详情
0x1 解题思路
0x2 代码实现
class Solution {
public int maxSubArray(int[] nums) {
int result=Integer.MIN_VALUE;
if(nums==null || nums.length<2){
return result=nums.length!=0?nums[0]:0;
}
//表示i之前能够产生的最大连续子数组和
int pre=0;
for(int i=0;i<nums.length;i++){
//判断i之前的子数组和加上当前元素i的结果是否比元素i本身大,如果没有,说明我们根本没有必要使用前面的子数组和
pre=Math.max(pre+nums[i],nums[i]);
//每次都更新最大值
result=Math.max(result,pre);
}
return result;
}
}0x3 课后总结
Last updated