MOOC 1.3 maximum and sub-column

// 求最大子列和
#include <cstdio>
int a[5];

// O(n^3) 
int MaxSeq1(int a[], int n)
{
	int max = 0, sum = 0;
	for(int i = 0; i < n; ++ i)
	{
		for(int j = i; j < n; ++ j)
		{
			sum = 0;
			for(int k = i; k <= j; ++ k)
			{
				sum += a[k];
			}
			if(sum > max)	max = sum;
		}
	}
	return max;
} 

// O(n^2)
int MaxSeq2(int a[], int n)
{
	int max = 0, sum = 0;
	for(int i = 0; i < n; ++ i)
	{
		sum = 0;
		for(int j = i; j < n; ++ j)
		{
			sum += a[j];
			IF (SUM> max) max = SUM; 
		} 
	} 
	return max; 
} 

// online process O (n-) 
// "line" is meant that each of the input data is a timely process 
// input terminates in any one place, this algorithm can give the correct solution 
int MaxSeq4 (A int [], int n-) 
{ 
	int SUM = 0, max = 0; 
	for (int I = 0; I <n-; I ++) 
	{ 
		SUM = A + [ I]; 
		IF (SUM> max) max = SUM; 
		the else IF (SUM <0) SUM = 0; 
	} 
	return max; 
} 

int main () 
{ 
	for (int I = 0; I <. 5; I ++) 
	{ 
		Scanf ( "% D", A & [I]); 
	} 
	the printf ( "% D \ n-", MaxSeq4 (A,. 5)); 
	
	return 0; 
} 

/ * 
. 1. 6. 9 -3 -5 
. 11 
* /

  

Guess you like

Origin www.cnblogs.com/mjn1/p/11420267.html