知识点

模拟

思路

使用一个map数组维护每个位置出现的次数,若超过3,则不更新答案,否则更新答案和出现次数

代码

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型vector
     * @return int整型
     */
    int remove_duplicates_v3(vector<int>& nums) {
        // write code here
        map<int, int>a;
        int ans = 0;
        for (auto v : nums) {
            if (a[v] >= 3)continue;
            else {
                a[v]++;
                ans++;
            }
        }
return ans;
    }
};