欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OJ ----- 牛客 JZ28 : 数组中出现次数超过一半的数字

程序员文章站 2022-06-11 11:10:34
...

OJ ----- 牛客 JZ28 : 数组中出现次数超过一半的数字

class Solution {
public:
    int MoreThanHalfNum_Solution(vector<int> numbers) {
        if (numbers.empty())
            return 0;
        
        //思路:
        //给数组排序, 如果符合要求那么这个数字一定就是数组中间靠右的那个数字
        //取到这个数字, 进行遍历验证一下是否符合要求
        
        //排序取中间靠右的值, 因为数组从0开始, 所以这里只要size/2即可
        sort(numbers.begin(), numbers.end());
        int mid = numbers[numbers.size() / 2];
        
        int count = 0;
        for (int i = 0; i < numbers.size(); i++) {
            if (numbers[i] == mid)
                count++;
        }
        if (count > numbers.size() / 2)
            return mid;
        else
            return 0;
    }
};
相关标签: OJ题目