import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
public class 猫狗收容所 {
private static class Animal {
int type;
int time;
static int timeline;
public Animal(int typeNumber) {
this.type = typeNumber;
this.time = timeline++;
}
}
public ArrayList<Integer> asylum(int[][] ope) {
ArrayList<Integer> res = new ArrayList<>();
Queue<Animal> dogs = new LinkedList<>();
Queue<Animal> cats = new LinkedList<>();
for (int[] row : ope) {
int op = row[0];
int typeNumber = row[1];
if (op == 1) {
if (typeNumber > 0) {
dogs.add(new Animal(typeNumber));
}
if (typeNumber < 0) {
cats.add(new Animal(typeNumber));
}
} else if (op == 2) {
if (typeNumber == 0) {
if (!dogs.isEmpty() && cats.isEmpty() || dogs.peek().time < cats.peek().time) {
res.add(dogs.poll().type);
}
}
if (dogs.isEmpty() && !cats.isEmpty() || dogs.peek().time > cats.peek().time) {
res.add(cats.poll().type);
}
} else {
if (typeNumber==1&&!dogs.isEmpty()){
res.add(dogs.poll().type);
}
if (typeNumber==-1&&!dogs.isEmpty()){
res.add(cats.poll().type);
}
}
}
return res;
}
}
数据结构1-7-5(猫狗收容所)
最新推荐文章于 2024-05-03 16:54:29 发布