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

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

  • 问题:
  • 解题:
  • 性能:

问题:

题目地址,点我
数据结构与算法-练习打卡day11(动物收容所)_第1张图片

解题:

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

性能:

速度还是不够啊
数据结构与算法-练习打卡day11(动物收容所)_第2张图片


你可能感兴趣的