题解 | 机器翻译

机器翻译

https://www.nowcoder.com/practice/45ecfecd83104f37a685016361be504c

使用集合避免在缓存中进行n次查询,缩短至logn次

#include <iostream>
#include<queue>
#include<set>
using namespace std;

queue<int> fr;
set<int> fi;
int main() {
    int m ,n;cin >> m >> n;
    int ai;
    int times =0;
    while(n--){
        cin >> ai;
        if (fi.find(ai) == fi.end()){ // 缓存找不到
            times++;
            fr.push(ai);fi.insert(ai);
            if(fi.size() == m+1){ // 缓存超量
                fi.erase(fr.front());
                fr.pop();
            }
        }
    }cout << times;
}

全部评论

相关推荐

点赞 评论 收藏
分享
牛客20485985...:抱抱😘,首先你还有春招,然后就算这时候没上岸也没关系,大部分人都是这样,毕业了再找也成,最后工作只是生活的一小部分,找到工作也不是一个必须的事情。不要气馁不要焦虑你只是陷入了短暂的低谷,你也一直有退路
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务