-2
public class rough{
 public static int arrMajority1(int A[]){
  int n = A.length;
  int c = 1;
  for(int i=0;i>A.length;i++){

    for(int j=i+1;j<A.length;j++)
     if (A[i]==A[j])
      c=c+1;
      if (c>(A.length/2)){
      return A[i];
      }
     }
     return -1;
    }
    public static void main(String[] args){
     int A[] = new int [] {5,5,8,7,5};
    // int arrMajority1 = A[0];
     System.out.println(" " + arrMajority1(A));
    }
}

サイズ N の配列 A の多数決要素は、N/2 回以上出現する要素です。たとえば、(3,3,4,2,4,4,2,4,4) には多数決要素 (4) がありますが、配列 (3,3,4,2,4,4,2,4) には多数要素 (4) があります。多数要素を持たない。

4

1 に答える 1

1

このコードの何が問題なのかという質問であれば、主な問題は外側のforループの状態にあると思います。私はそうあるべきだと思います:

for(int i = 0; i < A.length; i++) {

<(ではなく に注意してください>)。

もう 1 つの問題は、おそらくc外側のforループの各反復の前にカウンターをリセットする必要があることです (そうしないと、検査中の現在の要素のカウントが保持されません)。したがって、int c = 1;ステートメントを内側のforループの上の空白行に移動してみてください。

于 2013-02-14T20:07:03.020 に答える