nowcoder 页面调度算法

来源:互联网 发布:我没有说话 知乎 编辑:程序博客网 时间:2024/06/08 05:37

问题描述

http://www.nowcoder.com/question/next?pid=1725826&qid=44805&tid=3976758

笔记

以一个vector作为缓存,查找成功的话就不操作,查找失败的话,如果缓存满了,就从vector的头部erase一个元素,然后再插入新的请求

代码

#include <iostream>#include <vector>using namespace std;bool checkCache(vector<int> cache, int target){    for (int i = 0; i < cache.size(); i++)    {        if (cache[i] == target)        {            return true;        }    }    return false;}int main(int argc, const char * argv[]) {    // insert code here...    //std::cout << "Hello, World!\n";    int cacheSize;    int nreqs;    while (cin >> cacheSize >> nreqs)    {        vector<int> reqs;        reqs.clear();        for (int i = 0; i < nreqs; i++)        {            int in;            cin >> in;            reqs.push_back(in);        }        vector<int> cache;        cache.clear();        int res = 0;        for (int i = 0; i < nreqs; i++)        {            if (checkCache(cache, reqs[i]))            {                continue;            }            else            {                res++;                if (cache.size() == cacheSize)                {                    cache.erase(cache.begin());                }                cache.push_back(reqs[i]);            }        }        cout << res << endl;    }    return 0;}
0 0
原创粉丝点击