题目简述:Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times
第一版解答:
public class Solution {
public int majorityElement(int[] nums) {
int size = nums.length;
int limit = size / 2;
for(int i = 0; i < limit + 1; i ++){
int count = 0;
for(int j = 0; j < size; j ++){
if(nums[j] == nums[i]){
count ++;
}
if(count > limit){
return nums[i];
}
}
}
return -1;
}
}
这一版代码没用通过,出现了time exceeded。在这个解答中,需要执行(n^2)/2次循环。
实际上,根据题目限制,在数组中,majority element至少会出现n/2次,并且在数组中一定会出现一个majority element。