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
.
思路:DP中的子序列和最大化问题。
代码:
1 class Solution { 2 public: 3 int maxSubArray(vector<int>& nums) { 4 int i,n=nums.size(),curmax=nums[0],resmax=nums[0]; 5 for(i=1;i<n;i++){ 6 curmax=max(nums[i],curmax+nums[i]); 7 resmax=max(resmax,curmax); 8 } 9 return resmax; 10 } 11 };
原文:http://www.cnblogs.com/Deribs4/p/5700682.html