数组中的多数元素

时间:2013-02-14 19:59:16

标签: java

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)没有多数元素。

1 个答案:

答案 0 :(得分:1)

如果问题是询问此代码有什么问题,我认为主要问题是外部for循环中的条件。我认为应该是:

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

(请注意<而非>)。

另一个问题是你可能需要在外部c循环的每次迭代之前重置for计数器(否则,它将不会保留当前的计数被检查的元素)。因此,请尝试将int c = 1;语句移动到内部for循环上方的空白行。