LeetCode 53. 最大子序和 Java动态规划

class Solution {
    public int maxSubArray(int[] nums) {
        int ans = nums[0];
        int sum = 0;
        for(int num: nums) {
            if(sum>0) {
                sum += num;
            } else {
                sum = num;
            }
            ans = Math.max(ans, sum);
        }
        return ans;
    }
}

写了几种情况帮助理解

-1,-5,10

sum=-1
ans=-1

sum=-5
ans=-1

sum=10
ans=10

-2,5,-2,10

sum=-2
ans=-2

sum=5
ans=5

sum=3
ans=3

sum=13
ans=13

-2,5,-12,10

sum=-2
ans=-2

sum=5
ans=5

sum=-7
ans=5

sum=10
ans=10