1. 程式人生 > >[leetCode]53. Maximum Subarray&&動態規劃

[leetCode]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.

Subscribe to see which companies asked this question

動態規劃:

#include<iostream>
#include<vector>
using namespace std;
int maxSubArray(vector<int>& nums) {
   int len=nums.size();
   if(len==0)
		return 0;
   int sum=-1;
   int max=-100000;
   for(int i=0;i<len;i++)
   {
   		if(sum<0)
			sum=nums[i];
		else
			sum=sum+nums[i];
		if(sum>max)
			max=sum;
   }
    return max;   
}
int main()
{
	int a[9]={-2,1,-3,4,-1,2,1,-5,4};
	vector<int> v(a,a+9);
	cout<<maxSubArray(v)<<endl;
	return 0;
}