**超过: > **
该题 首先给数组进行排序
数组个数无论是偶数还是奇数,只要其中有一个数字的个数超过数组大小的一半,那么 数组大小 / 2 的位置的元素一定是所求元素(排序后才会是这样)
排序用到了 ArrayList 中的 Collections.sort(list)
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) {
int[] array = {1,2,3,2,2};
int n = array.length;
int result = getValue(array,n);
System.out.println(result);
}
public static int getValue(int[] gifts, int n) {
if(n == 0){
return -1;
}
List<Integer> list = new ArrayList<>();
for(int i = 0;i < gifts.length;i++){
list.add(gifts[i]);
}
Collections.sort(list);
System.out.println(list);
int answer = 0;
int temp = list.get(list.size() / 2);
int count = 0;
for(int i = 0;i < list.size();i++){
if(list.get(i) == temp){
count++;
}
}
if(count > list.size()/2) {
answer = temp;
return answer;
} else
return 0;
}
}