原题链接:https://leetcode-cn.com/problems/maximum-subarray/
class Solution {
// 动态规划
public int maxSubArray(int[] nums) {
// 记录当前为位置的前一个位置已经得到的最大值
int pre = 0;
// 记录结果
int res = nums[0];
for (int i = 0; i< nums.length; i++){
// 当前位置的最大值= 前一个加当前值与不加当前值比较选大的那一个
pre = Math.max(pre + nums[i], nums[i]);
// 不断替换结果,保留每次结果的那个较大值
res = Math.max(pre, res);
}
return res;
}
}
难点:前一个值加当前这个值,取最大的思维,动态规划这类思维也是比较重要的。