原题目:https://leetcode-cn.com/problems/animal-shelter-lcci/
思路:
使用两个队列实现。动物的编号是自增的
代码:
class AnimalShelf {
private:
queue<int> cat,dog;
public:
AnimalShelf() {
}
void enqueue(vector<int> animal) {
if(animal[1]==0){
cat.push(animal[0]);
}
else{
dog.push(animal[0]);
}
}
vector<int> dequeueAny() {
if(cat.size()==0 && dog.size()==0) return {-1,-1};
if(cat.size()==0) return dequeueDog();
if(dog.size()==0) return dequeueCat();
return cat.front()<dog.front() ? dequeueCat() : dequeueDog();
}
vector<int> dequeueDog() {
if(dog.size()==0) return{-1,-1};
int id = dog.front();
dog.pop();
return {id,1};
}
vector<int> dequeueCat() {
if(cat.size()==0) return{-1,-1};
int id = cat.front();
cat.pop();
return {id,0};
}
};