Skip to content

Latest commit

 

History

History
39 lines (31 loc) · 841 Bytes

#85-优先队列.md

File metadata and controls

39 lines (31 loc) · 841 Bytes

题目描述:

优先队列是一种元素带权重的队列,你可以往队列中添加和删除元素,但是删除元素的时候会把优先级最高的元素删除。例如:

const pq = new PriorityQueue()
pq.add(1)
pq.add(2)
pq.add(3)

pq.remove() // => 3
pq.remove() // => 2
pq.remove() // => 1

remove 方法每次删除的时候都会把最大的元素删除掉,并且返回被删除元素。请你完成 PriorityQueue 的实现。服务器运行时间限制:20ms。


参考答案:

class PriorityQueue {
  constructor() {
    this.arr = [];
  }
  add (num) {
    this.arr.push(num);
  }
  
  remove () {
    let num = Math.max.apply(null, this.arr);
    this.arr.splice(this.arr.indexOf(num), 1);
    return num;
  }
}