动物收容所

题目链接

动物收容所

题目描述

注意点

  • 若没有可以收养的动物,则返回[-1,-1]
  • 收纳所的最大容量为20000
  • 编号随着收养动物的增加自增

解答思路

  • 利用队列先进先出的特点将猫和狗分别存进两个队列中,关键是dequeueAny这个方法中如果此时猫和狗的队列中都有元素则需要根据其编号选择相应的猫或狗

代码

class AnimalShelf {
    Deque<int[]> dogDq;
    Deque<int[]> catDq;

    public AnimalShelf() {
        dogDq = new ArrayDeque<>();
        catDq = new ArrayDeque<>();
    }
    
    public void enqueue(int[] animal) {
        if (animal[1] == 0) {
            catDq.offerLast(animal);
        }
        if (animal[1] == 1) {
            dogDq.offerLast(animal);
        }
    }
    
    public int[] dequeueAny() {
        if (dogDq.isEmpty() && catDq.isEmpty()) {
            return new int[]{-1, -1};
        }
        if (dogDq.isEmpty()) {
            return catDq.pollFirst();
        }
        if (catDq.isEmpty()) {
            return dogDq.pollFirst();
        }
        return catDq.peek()[0] > dogDq.peek()[0] ? dogDq.pollFirst() : catDq.pollFirst();
    }
    
    public int[] dequeueDog() {
        if (dogDq.isEmpty()) {
            return new int[]{-1, -1};
        }
        return dogDq.pollFirst();
    }
    
    public int[] dequeueCat() {
        if (catDq.isEmpty()) {
            return new int[]{-1, -1};
        }
        return catDq.pollFirst();
    }
}

关键点

  • 编号随着收养动物的增加自增
  • 注意边界问题

相关推荐

  1. SCP收容物999

    2024-06-06 10:26:04       35 阅读
  2. SCP收容物061~070

    2024-06-06 10:26:04       31 阅读
  3. SCP收容物081~09

    2024-06-06 10:26:04       36 阅读
  4. 绘制一个动物——蟒蛇

    2024-06-06 10:26:04       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 10:26:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 10:26:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 10:26:04       82 阅读
  4. Python语言-面向对象

    2024-06-06 10:26:04       91 阅读

热门阅读

  1. 详解大模型微调数据集构建方法(持续更新)

    2024-06-06 10:26:04       31 阅读
  2. Flutter之旅:探索安卓与跨平台开发的无限可能

    2024-06-06 10:26:04       36 阅读
  3. Android Audio实战——音量默认值修改(一)

    2024-06-06 10:26:04       29 阅读
  4. 怎么用SU做分层轴测图?

    2024-06-06 10:26:04       27 阅读
  5. delphi Windows

    2024-06-06 10:26:04       24 阅读
  6. ubuntu蓝牙连接问题

    2024-06-06 10:26:04       34 阅读
  7. k8s使用yml文件部署

    2024-06-06 10:26:04       24 阅读