题目 :数组中出现次数超过一半的数字
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
题解:
//该方法排序耗时颇长
var majorityElement = function(nums) {
//将数组进行排序
var i = nums.length;
var num;
var j;
while(i>0){
for(j=0;j<i;j++){
if(nums[j]>nums[j+1]){
num = nums[j];
nums[j]=nums[j+1];
nums[j+1] = num;
}
}
i--;
}
//排序之后中间的数字就是出现次数超过一半的数字
//为了避免数组长度为奇数导致出错
//返回的是下标为 数组长度一半向下取整 的元素
var n = Math.floor(nums.length/2);
return nums[n];
};