给定一个大小为n的数组,找出数组中出现次数超过【n/2】次的元素。
例如:
int[] arrays {1,2,3,4,1,1,,1}
出现次数超过【n/2】的元素为:1
解答:快速排序法:
public static void main(String[] args) {
int[] arrays = {1,2,3,4,1,1,1,};
//快速排序
Arrays.sort(arrays);
System.out.println(arrays[arrays.length/2]);
}
思路:
题中给出要求,我们求出现超过n/2次的元素,若我们将数组进行升序或降序排序后,出现次数超过【n/2】次的,一个超过了数组的中位数;故我们只需求出数组中间那位数;