Skip to content

Latest commit

 

History

History
77 lines (63 loc) · 1.27 KB

File metadata and controls

77 lines (63 loc) · 1.27 KB
var majorityElement = function(nums) {
      nums.sort((a,b) => a - b);
    return nums[Math.floor(nums.length/2)];
};
var majorityElement = function(nums) {
     
    // Boyer-Moore Voting Algorithm
    
    let count = 0, candidate = 0
    
    for (let num of nums) {
        if (count == 0) {
            candidate = num
        }
        count += num == candidate ? 1 : -1
    }
    
    return candidate
};
var majorityElement = function(nums) {
     
     let map = {}
    
    for(let num of nums) {
        map[num] = map[num] ? map[num] + 1 : 1
    }

    for (const key in map) {
        if (map[key] > nums.length / 2 ) {
            return key
        }      
    }
};

O(1) space and O(n) Time

  let len=nums.length;
    let count=0;
    let major=0;
    for(i=0;i<len;i++){
        if(count==0){
            count++;
            major=nums[i]
        }else if(major==nums[i]){
            count++;
        }else{
            count--;
        }
    }
    return major;

O(1) space and O(n) Time

var majorityElement = function(nums) {
     
 let count = 0
let candidate = null
for(let i=0;i<nums.length;i++){
        if(count==0){
            candidate=nums[i]
        }
        count+=(candidate==nums[i])?1:-1
}
return candidate

};