[LeetCode] 169. 多数元素

自己想的:

class Solution {
    public int majorityElement(int[] nums) {
        Arrays.sort(nums);
        return nums[nums.length/2];
    }
}

 

 方法二:

摩尔投票法,时间复杂度O(n),因为要遍历一次数组,空间复杂度O(1),不需要额外空间

class Solution {
    public int majorityElement(int[] nums) {
        int count=0;
        int candidate=nums[0];
        for(int i=0;i<nums.length;i++){
            if(nums[i]==candidate){
                count++;
            }else{
                count--;
            }
            if(count==0){
                candidate=nums[i+1];
            }
        }
        return candidate;
    }
}

 

posted @ 2020-04-09 15:52  doyi  阅读(108)  评论(0编辑  收藏  举报