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<int>key,value,res;
for(int i=0;i<operators.size();i++)
{
if(operators[i][0]==1)
{
set(operators[i][1],operators[i][2],key,value,k);
}else{
get(operators[i][1],key,value,res);
}
}
return res;
}
void set(int a,int b,vector<int> &key, vector<int> &value,int k)
{
if(key.size()<k)
{
key.push_back(a);
value.push_back(b);
}else{
key.push_back(a);
value.push_back(b);
key.erase(key.begin());
value.erase(value.begin());
}
}
void get(int a,vector<int> &key,vector<int> &value,vector<int> &res)
{
int t=-1;
for(int i=0;i<key.size();i++)
{
if(key[i]==a)
{
t=value[i];
key.push_back(key[i]);
value.push_back(value[i]);
key.erase(key.begin()+i);
value.erase(value.begin()+i);
break;
}
}
res.push_back(t);
}
};