首页 > 其他分享 >【JS】实现 MaxQueue

【JS】实现 MaxQueue

时间:2023-09-07 22:24:06浏览次数:40  
标签:el maxQueue console log 实现 max JS getMax MaxQueue

class MaxQueue {
    constructor() {
        this.queue = []
        this.max = []
    }

    enqueue(el) {
        this.queue.push(el)
        while(this.max.length && this.max[this.max.length - 1] < el) {
            this.max.pop()
        }
        this.max.push(el)
    }

    dequeue() {
        if(!this.queue.length) {
            return -Infinity
        }
        const el = this.queue.shift()
        if(el === this.max[0]) {
            this.max.shift()
        }
        return el
    }

    getMax() {
        if(this.max.length) {
            return this.max[0]
        }
        return -Infinity
    }
}

const maxQueue = new MaxQueue()
maxQueue.enqueue(1)
maxQueue.enqueue(2)
maxQueue.enqueue(-1)
console.log(maxQueue.getMax())
console.log(maxQueue.dequeue())
console.log(maxQueue.getMax())
console.log(maxQueue.dequeue())
console.log(maxQueue.getMax())
console.log(maxQueue.dequeue())
console.log(maxQueue.getMax())

可视化版本。

https://max-queue.vercel.app/

 

标签:el,maxQueue,console,log,实现,max,JS,getMax,MaxQueue
From: https://www.cnblogs.com/zjy4fun/p/17686223.html

相关文章

  • 课程教学质量评价系统设计与实现-计算机毕业设计源码+LW文档
    1.选题背景、意义教学质量评价是依照教学标准和数学目标、对教师教学能力进行价值评判,是教学活动进行的重要步骤之一。教师的教学质量越高,代表其教学能力越强。因此,需要建立十分合理的评价标准来对教师教学质量进行评判。现如今国内外教育评价标准多种多样,国外学者侧重于将学生学......
  • django-普通分页实现
    views.py代码:#普通分页功能defperson_page(request):#从URL中取出参数page,这个参数是“page=1”形式cur_page_num=request.GET.get('page')#取得PrettyNum模型中的记录总数total_count=models.PrettyNum.objects.all().count()#设定每......
  • MyBatis操作Oracle(实现兼容Oracle和MySQL)
    MyBatis操作Oracle(实现兼容Oracle和MySQL)以Oracle11g来演示,只需要创建序列,不需要创建触发器,通过ORM框架操作来生成主键MySQL版本是8.x代码地址:https://gitee.com/zhang-zhixi/springboot-mp-oracle-auto.git1、分别创建Student表Oracle:CREATETABLE"STUDENT"("ID"N......
  • Java是如何实现跨平台的
    "Java跨平台"是指Java编程语言的特性,使得开发的应用程序可以在不同的操作系统和硬件平台上运行,而无需进行额外的修改或适配。这意味着使用Java编写的程序可以在Windows、Mac、Linux等不同的操作系统上运行,而不需要针对每个平台进行单独的开发。这种跨平台的能力是由Java虚拟机(Java......
  • 机器学习算法原理实现——使用交叉熵、梯度下降求解逻辑回归
    交叉熵的定义以及和熵的区别?   交叉熵是衡量两个概率分布之间的差异的一个度量。在机器学习和深度学习中,尤其是分类问题,交叉熵常被用作损失函数。交叉熵度量的是实际分布(标签)与模型预测之间的不一致程度。 这个值越小,模型的预测与真实分布越接近。完美的预测会有交......
  • WorkPlus——高效私有化办公平台,实现即时协作与信息安全的完美结合
    在当今数字化时代,办公效率已成为企业追求发展的重要标准之一。为了满足企业对内部信息流畅传递的需求,私有化部署的即时通讯软件成为了不可忽视的核心工具。WorkPlus作为一款功能强大的办公平台,为企业打造了一个支持局域网的自主控制办公环境,提供了即时通讯、文件共享、视频会议等丰......
  • css实现 h5滑动时隐藏滚动条
    .menus{margin:10px0;margin-left:18px;display:flex;flex-wrap:nowrap;overflow-x:auto;}.menus::-webkit-scrollbar{display:none;width:0!important;height:0!important;-webkit-appearance:none;background:tra......
  • 使用Visual Studio实现.NET的应用程序设计
    1、首先当然是下载好VisualStudio软件啦!(2019版本)2、新建一个名为StuMis的解决方案3、在解决方案里面新建一个名为MK01的类库和一个名为MK02的类库右键解决方案,选择新建项目,选择类库:4、此时,其实StuMis并未引用到这两个类库我们需要为StuMis引用到这两个类库:右键引用,添......
  • CommonJS 和 ECMAScript 转换
    CommonJS和ECMAScript前言:在完成一个加密工具的过程中,本来只想使用commonjs语法完成该功能,但是在使用chalk的时候发现chalk是通过ES模块导出的,无法使用require引入(当然也有一些方法,可以使用bable去转化,但是本人想实现使用es语法,目前还没写多少内容,以下是转化......
  • WorkPlus打造统一用户管理平台,实现企业用户管理的一体化
    在企业信息化的进程中,统一用户管理平台扮演着重要的角色。WorkPlus作为领先的品牌,致力于打造一体化的统一用户管理平台,帮助企业实现用户管理的便捷与高效。本文将重点介绍WorkPlus如何通过创新的解决方案,实现企业用户管理的统一与集中管理,提升用户体验和工作效率。一、统一用户管理......