一、题目描述
二、解题思路
采用动态规划的思路。声明一个int类型的变量sum,想贪吃蛇一样向前遍历数组。每当sum<= 0时,说明sum对接下去的和没有增长的作用,就舍弃sum的尾巴。
把结果的值保存在ans中,每次ans只要取自身和sum中较大的那个值即可。
三、编程实现
class Solution {
public int maxSubArray(int[] nums) {
if(nums.length == 0)
return 0;
int sum = 0;
int ans = nums[0];
for(int num : nums){
if (sum <= 0)
sum = num;
else
sum += num;
ans = Math.max(ans,sum);
}
return ans;
}
}