首页 > 代码库 > 53. Maximum Subarray
53. Maximum Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array [-2,1,-3,4,-1,2,1,-5,4]
,
the contiguous subarray [4,-1,2,1]
has the largest sum = 6
.
思路:
ref:https://discuss.leetcode.com/topic/6413/dp-solution-some-thoughts
这个做法和我的想法很接近,里面讲的有些思路很清晰很直接。
我是直接用最小的例子来分析。
-2,
-2,1
-2,1,-3
dp[0]<0,dp[1]=nums[1]
dp[0]>0,dp[1]=dp[0]+nums[1];
找最大的dp。
public class Solution { public int maxSubArray(int[] nums) { int[] dp=new int[nums.length]; dp[0]=nums[0]; int max=dp[0]; for(int i=1;i<nums.length;i++) { if(dp[i-1]<=0) { dp[i]+=nums[i]; } else { dp[i]=dp[i-1]+nums[i]; } max=Math.max(dp[i],max); } return max; }}
53. Maximum Subarray
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。