知识点

哈希表

思路

遍历整个数组,用哈希表维护每次可能成为众数的数是谁,如果出现了更好的位置更新。

时间复杂度为O(n)

AC Code(C++)

#include <unordered_map>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型vector
     */
    vector<int> findMode(vector<int>& nums) {
        vector<int> cnt(100010, 0);
        vector<int> res;
        int id = 0;
        for (auto x : nums) {
            cnt[x] += 1;
            if (cnt[x] > cnt[id] or (cnt[x] == cnt[id] and x > id)) id = x;
            res.push_back(id);
        }
        return res;
    }
};