数据结构与算法-练习打卡day11(动物收容所)

数据结构与算法-练习打卡day11

问题:

题目地址,点我
在这里插入图片描述

解题:

分析:添加到队列不需要条件直接添加,获取的时候需要判断内容,最简单的就是获取迭代器,然后判断第一个,可以符合条件就移除,双向链表比较符合要求,直接用LinkedLIst

	class AnimalShelf {

		private LinkedList<int[]> list;

		public AnimalShelf() {
			list = new LinkedList<>();
		}

		public void enqueue(int[] animal) {
			list.addLast(animal);
		}

		public int[] dequeueAny() {
			if (list.size() < 1) {
				return new int[]{-1, -1};
			}
			return list.removeFirst();
		}

		public int[] dequeueDog() {
			return dequeueBy(1);
		}

		public int[] dequeueCat() {
			return dequeueBy(0);
		}

		public int[] dequeueBy(int an) {
			if (list.size() < 1) {
				return new int[]{-1, -1};
			}
			ListIterator<int[]> listIterator = list.listIterator();
			while (listIterator.hasNext()) {
				int[] next = listIterator.next();
				if (next[1] == an) {
					listIterator.remove();
					return next;
				}
			}
			return new int[]{-1, -1};
		}
	}

性能:

速度还是不够啊
在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值