クラス試験 - これは、サブアレイ及び最大の整数配列を返します

トピック:

 

 コードは以下の通りであります:

パッケージday01。

インポートjava.util.Scanner;

パブリック クラスMaxArray {    

    パブリック 静的 int型の最大値(INT I、INT J){
         int型M。
        もし(I> J)
            mは = Iと、
         
            メートル = J;
        リターンメートル。        
    }
    パブリック 静的 ボイドメイン(文字列[]引数){
         // 自動的にスタブを生成する方法であってTODO

         int型私は、N。
         
         INT [] = 新しい int型 [100 ]。
         スキャナSC = 新しいスキャナ(System.in)。   // N个整数 
         N = sc.nextInt()。
         (; I <= N; I ++ iは1 = 
         [I] = sc.nextInt()。
          (; I <= N; I ++ I = 2 
          {
              IF(A [I] + A [I-1]> A [I])          // この数とフロントのこの数以上の数は、これは隣接サブアレイの場合 
              [I] = [I ] + A [I-1 ];
          }
            int型 ANS = -100000 ;
            (; I <= N; I ++ iは1 = 
                ANS = MAX(ANS、A [I]);       // まず、第1のサブアレイと次に大きいサブアレイおよびサイクル、続いてANSを割り当て大きいリフレッシュ、比較ANS、に割り当てられた
        システム。 out.printlnを(ANS)。
        sc.close();
    }

}

 テスト結果は、スクリーンショット:

 

 

 

 開発:配列は、最大の配列と部分配列を求めて、リングの配列です

要件:各値は一度だけ撮影することができます

コードは以下の通りであります:

パッケージday01。

インポートjava.util.Scanner;

パブリック クラスFindMaxArray {

    パブリック 静的 ボイドメイン(文字列[]引数が){
         // A法スタブが自動的に生成されたTODO 
        INT長; // 配列長の長さを定義
        INT N-; // 定義された変更後の配列の長さ 
        の配列を入力してください「のSystem.out.printlnを( 「要素の数)。
        スキャナSC = 新しいスキャナ(System.in)。
        長さ = sc.nextInt()。
        N = 2× 長さ;
        
        INT [] = 新しい INT [n]を、
        System.out.println("请输入数组中的元素:");
       
        for(int i=0;i<length;i++)
        {    
             a[i] = sc.nextInt();
        }
        int max=a[0];
        int s=0;//定义求和后的元素
        for(int i=0;i<length;i++)
         {
           s=0;
           for(int j=i;j<length+i;j++)
           {
              s=s+a[j];
              if(s>max)
              {
                 max=s;
              }
           }
          a[length+i]=a[i];                                //每次将已经计算过的数放到最后
         }
        System.out.println("最大子数组的和为:"+max);
        sc.close();
    

    }

}

 

 但是上面的解决方法与要求不服,数组中的值用了两次,及每次第i个值昨完判断后再赋值给length+i。所以现在还没有想到别的方法。

 

おすすめ

転載: www.cnblogs.com/tianwenjing123-456/p/12363637.html