码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode53 Maximum Subarray

时间:2018-11-13 11:36:53      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:pre   int   math   []   tco   mat   else   style   div   

就是最基本的DP,先用了最基本的做法。

class Solution {
    public int maxSubArray(int[] nums) {
        int[] dp = new int[nums.length];
        dp[0]=nums[0];
        for(int i=1;i<nums.length;i++){
            dp[i]=Math.max(nums[i],nums[i]+dp[i-1]);
        }
        int max=nums[0];
        for(int i=1;i<dp.length;i++){
            max=Math.max(max,dp[i]);
        }
        return max;
    }
}

14ms,19.5%.

稍作改进,不用自带的Math.max。

class Solution {
    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++){
            if(dp[i-1]>0) dp[i]=dp[i-1]+nums[i];
            else dp[i]=nums[i];
            if(dp[i]>max) max=dp[i];
        }
        return max;
    }
}

8ms,99.92%。

Leetcode53 Maximum Subarray

标签:pre   int   math   []   tco   mat   else   style   div   

原文地址:https://www.cnblogs.com/chason95/p/9951227.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!