Leetcode53 Maximum Subarray
阿新 • • 發佈:2018-11-13
[] i++ 基本 array class leetcode length sub int
就是最基本的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