题解 | 草原上优势牛种

语言: C++

知识点: 哈希表

分析: 本题要求数组中出现次数最多的数,可以在遍历过程中使用unordered_map记录数字及其出现的次数,同时定义一个maxN变量记录当前的出现次数最大值,若在遍历过程中数字出现次数大于maxN,则将其更新为新的最大值并使用res变量记录该数字,最终遍历完成后返回res即可。

代码实现:

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型
     */
    int majority_cow(vector<int>& nums) {
        unordered_map<int, int> mp;
        int maxN = 0, res;
        for(int n : nums)
        {
            mp[n]++; // 该数出现次数加一
            if(mp[n] > maxN)
            {
                maxN = mp[n]; // 更新最大值
                res = n; // 同时记录该数字
            }
        }
        return res; 
    }
};