#85 优先队列


  • 0
    administrators

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

    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。


  • 0

    class PriorityQueue {
      constructor() {
        this.queue = []
        this.isSorted = false
      }
      add (e) {
        this.isSorted = false
        this.queue.push(e)
      }
      
      remove () {
        if (!this.isSorted) {
          this.queue.sort((a,b) => a - b)
          this.isSorted = true
        }
        return this.queue.pop()
      }
    }
    

    终于通过了


  • 0

    class PriorityQueue {
      constructor(){
        this.arr = [];
      }
      add (num) {
        /* TODO */
        this.arr.push(num);
      }
      
      remove () {
        /* TODO */
        var num = Math.max(...this.arr);
         this.arr.splice(this.arr.indexOf(num),1);
        return num;
      }
    }
    

登录后回复
 

与 ScriptOJ 的连接断开,我们正在尝试重连,请耐心等待