模拟题,直接模拟过程即可。
class Solution {
public:
/**
* lru design
* @param operators int整型vector<vector<>> the ops
* @param k int整型 the k
* @return int整型vector
*/
vector<int> LRU(vector<vector<int> >& operators, int k) {
// write code here
vector<pair<int,int> > vec;
vector<int> ans;
vec.clear();
for(int i = 0;i < operators.size();++i){
if(operators[i][0] == 1){
for(int j = 0;j < vec.size();++j){
if(vec[j].first == operators[i][1]){
vec.erase(vec.begin() + j);
break;
}
}
if(vec.size() == k)
vec.erase(vec.begin());
vec.push_back(pair<int,int>(operators[i][1],operators[i][2]));
}
else {
int pos = 0;
for(pos = 0;pos < vec.size();++pos)
if(vec[pos].first == operators[i][1])
break;
if(pos == vec.size())
ans.push_back(-1);
else{
pair<int,int> pair = make_pair(vec[pos].first,vec[pos].second);
vec.erase(vec.begin() + pos);
vec.push_back(pair);
ans.push_back(pair.second);
}
}
}
return ans;
}
};