每日算法:

动态规划: dp[i] = dp[i-1]>0?dp[i-1]+nums[i]:nums[i];
dp[i]表示从0到i包含i的最大长度。

public int maxSubArray(int[] nums) {
         int[] dp = new int[nums.length];
         dp[0] = nums[0];
         int res = nums[0];
         for(int i = 1;i0?dp[i-1]+nums[i]:nums[i];
             res = Math.max(res,dp[i]);
         }
         return res;
     }
    public int maxSubArray(int[] nums){
        if(nums.length == 1){
            return nums[0];
        }
        int sum = nums[0];
        int res = nums[0];
        for(int i = 1;i

你可能感兴趣的:(每日算法:)