MOOC 1.3最大サブカラム

//求最大子列和
の#include <cstdioを> 
int型[5]。

//はO(n ^ 3)
INT MaxSeq1([]、int型N INT)
{ 
	int型の最大値= 0、和= 0。
	(; iがN <++ iが0 = INT)のために
	{ 
		ため(int型J = I; J <N; ++ J)
		{ 
			和= 0。
			(; K <= J; int型K = I ++ k)に対する
			{ 
				和+ = [K]。
			} 
			IF(和> MAX)最大=和。
		} 
	} 
	最大を返します。
} 

// O(N ^ 2)
INT MaxSeq2([]、int型N INT)
{ 
	int型の最大値= 0、和= 0。
	(; iがN <++ iが0 = INT)のために
	{ 
		和= 0。
		用(int型J = I; J <N; ++ j)は
		{  
			和+ = [J]。
			IF(和> MAX)最大=和。 
		} 
	} 
	最大を返す; 
} 

//オンラインプロセスO(N)
//「ライン」の入力データのそれぞれがタイムリーなプロセスであることを意味する
//入力は、いずれかの場所で終了このアルゴリズムは、正しい解決策を与えることができる
INT MaxSeq4(A INT []、INT N-)
{ 
	int型SUM = 0、最大= 0; 
	のために(INT I = 0;私は<N-; Iは++)
	{ 
		SUM = A + [ I]は、
		IF(SUM> MAX)最大= SUM; 
		他IF(SUM <0)SUM = 0; 
	} 
	最大を返す; 
} 

(INTメイン)
{ 
	ため(INT I = 0;私は<5; Iは++)
	{ 
		scanf関数( "%のD"、A&[I]); 
	} 
	のprintf( "%d個の\ N-"、MaxSeq4(,. 5)); 
	
	0を返す; 
} 

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

  

おすすめ

転載: www.cnblogs.com/mjn1/p/11420267.html