Animal Shelter
public class AnimalShelter {
/*
* @param name: a string
* @param type: an integer, 1 if Animal is dog or 0
* @return: nothing
*/
class Node { //神马在神马时间进的队列
String name;
int time; //进队列的时间
Node(String name, int time) {
this.name = name;
this.time = time;
}
}
Queue<Node> dogQ, catQ;
int time;
Public AnimalShelter() { //constructor
this.dogQ = new LinkedList<>();
this.catQ = new LinkedList<>();
time = 0;
}
public void enqueue(String name, int type) {
if (type == 1) {
dogQ.offer(new Node(name, time++)); //node 为 Queue 中的元素
} else {
catQ.offer(new Node(name, time++));
}
}
public String dequeueAny() {
if (dogQ.isEmpty()) {
return catQ.poll().name;
} else if (catQ.isEmpty()) {
return dogQ.poll().name;
}
return dogQ.peek().time < catQ.peek().time ? dogQ.poll().name : catQ.poll().name;
}
public String dequeueDog() {
return dogQ.poll().name;
}
public String dequeueCat() {
return catQ.poll().name;
}
}
最后更新于
这有帮助吗?