169. Majority Element

Javascript

/**
 * @param {number[]} nums
 * @return {number}
 */
var majorityElement = function(nums) {
    var m=[];
    for(var i=0;i<nums.length;i++)
    {
        if(m[nums[i]])
        m[nums[i]]++;
        else 
        m[nums[i]]=1;
        if(m[nums[i]]>nums.length/2)
        {
        return nums[i];
        }
    }
};

看到两个比较好的想法

Java,比较简洁,排序后的中间的数必定是答案

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

Java,时间复杂度O(n),空间复杂度O(1),

public class Solution {
    public int majorityElement(int[] nums) {
        int candidate = 0;
        int count = 0;
        for (int num : nums) {
            if (count == 0) {
                candidate = num;
                count++;
            } else if (candidate == num) {
                count++;
            } else {
                count--;
            }
        }
        return candidate;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容