题目 :数组中出现次数超过一半的数字

题目  :数组中出现次数超过一半的数字

  • 你可以假设数组是非空的,并且给定的数组总是存在多数元素。

  • 题解:

    //该方法排序耗时颇长
    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];
    
    };