[LeetCode]169. Majority Element

来源:互联网 发布:mac wine 安装 编辑:程序博客网 时间:2024/06/06 03:14

Array. Divide and Conquer. Bit manipulation.

Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.

You may assume that the array is non-empty and the majority element always exist in the array.


mine:

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


// Hashtable public int majorityElement2(int[] nums) {    Map<Integer, Integer> myMap = new HashMap<Integer, Integer>();    //Hashtable<Integer, Integer> myMap = new Hashtable<Integer, Integer>();    int ret=0;    for (int num: nums) {        if (!myMap.containsKey(num))            myMap.put(num, 1);        else            myMap.put(num, myMap.get(num)+1);        if (myMap.get(num)>nums.length/2) {            ret = num;            break;        }    }    return ret;}// Moore voting algorithmpublic int majorityElement3(int[] nums) {    int count=0, ret = 0;    for (int num: nums) {        if (count==0)            ret = num;        if (num!=ret)            count--;        else            count++;    }    return ret;}





原创粉丝点击