【LeetCode刷题】动态规划:53. 最大子序和

【LeetCode刷题】动态规划:53. 最大子序和_第1张图片
分析:使用动态规划来解题

  • 定义储存最大子序和的变量a,定义作相加计算的变量sum。
  • 遍历数组,当sum>0时将当前num累加。
  • 当sum<0时重新计算,num的值赋给sum。
  • 每层遍历的最后都需要将a与sum作比较,取最大值。
class Solution {
    public int maxSubArray(int[] nums) {
        int a = nums[0];
        int sum = 0;
        for(int num : nums){
            if(sum>=0){
                sum+=num;
            }else{
                sum=num;
            }
            a=Math.max(a,sum);
        }
        return a;
    }
}

你可能感兴趣的:(LeetCode)