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

数组中出现次数超过一半的数字

https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163?tpId=13&tqId=11181&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

solution:


std:

class Solution {
public:
    int MoreThanHalfNum_Solution(vector<int> numbers) {
        map<int , int> mp;
        int siz = numbers.size();
        int maxn = (siz + 2)/2;//数组的一一半长度
        for(int i=0;i<siz;i++){
            mp[numbers[i]]++;
            if(mp[numbers[i]] >= maxn)
                return numbers[i];
        }
        return 0;
    }
};
剑指offer 文章被收录于专栏

使用语言c++(比较喜欢用c++写编程题,java写的不熟)

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务