2.環状アレイ、時間複雑さが必要とされないが、唯一の要素ごとに一度使用することができます。しかし、この方法は一度だけ使用することができる、請求項の各要素を満たすことができない、次の書き込み小さな欠陥を有し、未だ解決する方法を知っていません。
1 パッケージday01; 2 。3 インポートjava.util.Scanner; 4 。5つの パブリック クラスFindMaxArray { 6。 7。 パブリック 静的 ボイドメイン(文字列[]引数){ 8。 // 自動的に生成されたスタブのTODO方法 9。 int型の長さ; // 定義配列の長さ長さ 10 INT N-; // 長さを変化させることの後に定義されたアレイ 11 のSystem.out.println(「配列要素の番号を入力してください」); 12である スキャナSC = 新しい新しいスキャナ(System.in); 13は 長さ= sc.nextInt( ); 14 = 2 * N- 長; 15 16 INT [] = 新しい新しい INT [N-]; 17。 のSystem.out.println( "配列の要素を入力してください" ); 18である 。19 用(INT I = 0; I <長さ。 ++ I ) 20は 、{ 21は、 [I] = sc.nextInt(); 22である } 23が INT最大= [0 ]; 24 int型 SUM = 0; // 加算要素定義した後 25を するために(INT I; I = 0 <長さ; I ++ ) 26である { 27 SUM = 0 ; 28 用(INT J = I; J <I +長さ; J ++ ) 29 { 30 SUM = SUM + A [j]は、 31である IF(SUM> MAX) 32 { 33が 最大= SUM; 34である } 35 } 36 [I +長さ]は[I] =; // 最終的に算出された数のたびに 37 } 38で のSystem.out.println( "サブ配列と最大である:" + MAX); 39 SC。クローズ(); 40 41は、 42であります } 43 44 }
スクリーンショットの営業成績: