原题链接: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; } }
难点:前一个值加当前这个值,取最大的思维,动态规划这类思维也是比较重要的。