53. 最大子序和
代码实现:
public int maxSubArray(int[] nums) { int[] dp = new int[nums.length]; dp[0] = nums[0]; int max = nums[0]; for (int i = 1; i < nums.length; i++) { dp[i] = Math.max(dp[i- 1] + nums[i], nums[i]); if (max < dp[i]) { max = dp[i]; } } return max; } 优化: public int maxSubArray(int[] nums) { int ans = nums[0]; int sum = 0 ; for(int x:nums){ if(sum>0){ sum+=x; } else { sum=x; } ans = Math.max(ans,sum); } return ans; }