如何求连续子数组的最大和

给定一个数组-3,5,5,6,7,8,7,求该数组的最大连续子数组的和

int MaxNum(int *arr,int len)
{
	assert(arr != NULL && len > 0);
	int max = 0x80000000;//int 类型的最小值
	int sum = 0;
	for(int i = 0; i < len;i++)
	{
		//sum = 0;
		if(sum <= 0)
		{
			sum = arr[i];
		}
		else 
		{
			sum += arr[i];
		}	
		if(sum > max)
		{
			max = sum;
		}
	}
	return max;
}
int main ()
{
	int arr[7] = {-3,5,5,6,7,8,7};
	int len = sizeof(arr)/sizeof(arr[0]);//求数组的长度
	int max = MaxNum(arr,len);
	printf("%d\n",max);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41078889/article/details/83245516
今日推荐