码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-08-30 15:45:31      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:hal   numbers   code   map   targe   pre   get   ret   empty   

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 数组中出现超过一半的数字

标签:hal   numbers   code   map   targe   pre   get   ret   empty   

原文地址:https://www.cnblogs.com/theodoric008/p/9560275.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!