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)没有多数元素。
答案 0 :(得分:1)
如果问题是询问此代码有什么问题,我认为主要问题是外部for
循环中的条件。我认为应该是:
for(int i = 0; i < A.length; i++) {
(请注意<
而非>
)。
另一个问题是你可能需要在外部c
循环的每次迭代之前重置for
计数器(否则,它将不会保留当前的计数被检查的元素)。因此,请尝试将int c = 1;
语句移动到内部for
循环上方的空白行。