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.



int maxSubArray(int* nums, int numsSize) {
	if (numsSize == 0)
		return 0;
	int maxsum = -1000000;
	int k = 0;
	bool f = false;
	while (k < numsSize)
	{
		while (k < numsSize&&nums[k] <= 0)
			k++;
		int sum = 0;
		while (k < numsSize)
		{
			f = true;
			sum += nums[k];
			if (sum > maxsum)
				maxsum = sum;
			if (sum <= 0)
				break;
			k++;
		}
	}
	if (!f)
	{
		maxsum = nums[0];
		for (int i = 1; i < numsSize; i++)
			if (nums[i]>maxsum)
				maxsum = nums[i];
		return maxsum;
	}
	return maxsum;
}
accepted



你可能感兴趣的:(LeetCode)