剑指offer 数组中出现超过一半的数字

Posted theodoric008

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer 数组中出现超过一半的数字相关的知识,希望对你有一定的参考价值。

class Solution {
public:
    int MoreThanHalfNum_Solution(vector<int> numbers) {
        if(numbers.empty()){
            return 0;
        }
        if(numbers.size() == 1){
            return numbers[0];
        }
        int len = (int)numbers.size();
        float target = len/2.0;
        map<int, int> m;
        for(int num: numbers){
            if(m.count(num) != 0){
                m[num]++;
                if(m[num] > target) return num;
            }
            else{
                m.insert(pair<int, int>(num, 1));
            }
        }
        return 0;
    }
};

以上是关于剑指offer 数组中出现超过一半的数字的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer 39. 数组中出现次数超过一半的数字

python剑指offer数组中出现次数超过一半的数字

剑指Offer:数组中出现次数超过一半的数字39

剑指 Offer 39. 数组中出现次数超过一半的数字

剑指offer-数组中出现次数超过一半的数字

剑指offer 28.数组中出现次数超过一半的数字