一道js编程题:用js实现栈的出栈,入栈等操作

2023-05-16

这是4月份某公司前端实习笔试的一道编程题,要求是实现:

入栈:NumberStack.push(num) 、出栈:NumberStack.pop() 、找出栈中第n大的数:NumberStack.max(n)

//下面是我的版本
function NumberStack() {
  this.stack = []; //栈的定义
}

NumberStack.prototype.push = function (num) {
  if (typeof num != "number") return false;
  this.stack.push(num);
};

NumberStack.prototype.pop = function () {
  if(this.stack.length>0){
    let last = this.stack.pop();
    return last;
  }
};

NumberStack.prototype.max = function (n) {
  let newArr = [].concat(this.stack);
  return newArr.sort()[n-1];
};

另外下面是在牛客网上另一个朋友写的,我觉得比我得要好一些

function NumberStack(){
    this.stack=[];//存储栈
    this.maxStack=[];//辅助栈,从小到大的排序
}
NumberStack.prototype.push=function(num){
    if(Object.prototype.toString.call(num)!="object Number") return false; 
    this.stack.push(num); 
    if(!this.maxStack.length){ 
        this.maxStack.push(num);
    }else{
        let len=his.maxStack.length;
        for(let i=0;i<len;i++){
            if(num<this.maxStack[i]){
                this.maxStack.splice(i,0,num);//将num插入maxStack到合适的位置
                break; 
            }
        }
    }
} 
NumberStack.prototype.pop=function(){ 
    let num=this.stack.pop();
    this.maxStack.splice(this.maxStack.indexOf(num),1);//将num从maxStack中删除 
    return num;
}
  
NumberStack.prototype.max=function(n){ 
    if(n<1||n>this.maxStack.length) return false; 
    return this.maxStack[this.maxStack.length-n];
}
 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一道js编程题:用js实现栈的出栈,入栈等操作 的相关文章

  • 微信小程序中使用画布canvas实现动态心电图绘制

    大家好 我是雄雄 内容先知 前言 效果图 实现代码 前言 近期 接了个项目 三端 小程序 PC 公众号 同步开发 PC端没的问题 以前一直做的就是PC端 但是小程序和公众号之前没有做过 只能通过这个项目 边做边学了 人家都说小程序用原生的特
  • C#中请求HTTP接口api的方法

    大家好 xff0c 我是雄雄 xff0c 欢迎关注微信公众号 xff1a 雄雄的小课堂 前言 现在是 xff1a 2023年2月15日22 14 30 搞代码的陈戌源都知道 xff0c 哦 xff0c 不好意思 xff0c 是程序员 xff
  • 如何usb 触摸设备不识别为usb mouse

    一 获取输入设备name 有一下两种方法 1 使用 cat proc bus input devices 可以查看 输入设备信息 I Bus 61 0018 Vendor 61 0000 Product 61 0000 Version 61
  • java实现采集(爬)网页中的信息

    大家好 xff0c 我是雄雄 xff0c 欢迎关注微信公众号 xff1a 雄雄的小课堂 前言 爬虫 xff0c 大家都听过 xff0c 可能好多人的第一印象 xff0c 就是使用python进行操作 xff0c 但是除了python之外 x
  • springboot中如何解决redis空闲连接时自动休眠的问题

    大家好 xff0c 我是雄雄 xff0c 欢迎关注微信公众号 xff1a 雄雄的小课堂 前言 今天发现了个神奇的问题 xff0c redis在长时间不使用的时候 xff0c 再次使用的时候 xff0c 会报错500 xff0c 看了下日志
  • 计算机各个岗的内容以及职责(简单整理)

    大家好 xff0c 我是雄雄 xff0c 欢迎关注微信公众号 xff1a 雄雄的小课堂 美工UI 主流技术 xff1a 平面设计软件 如Photoshop Illustrator Sketch等 用于界面设计和资源切图矢量图绘制软件 如Il
  • java实现人脸识别源码【含测试效果图】——前期准备工作及访问提示

    注意 xff1a 看完之后如有不懂 xff0c 请看 xff1a 关于人脸和指纹识别共同交流方案 xff0c 也可以关注微信公众号 xff1a 雄雄的小课堂 xff0c 回复 xff1a 人脸识别群获取群号 xff0c 群内有直接可以运行的
  • 人脸识别活体检测之眨眨眼和张张嘴

    这段时间有点忙 xff0c 终于截止今天2018 06 22完成了人脸识别的最后一道程序 活体检测之眨眨眼和张张嘴 关于人脸识别的内容我之前也写过好几篇博文 xff0c 其中有 xff1a java实现人脸识别源码 C winforms实现
  • ps中扩展画布的时候,不能选择扩展画布部分的颜色解决方法

    在PS中 xff0c 我们有时候会遇到扩展画布的场景 xff0c 但是扩展完画布之后我们发现不能改变颜色 xff0c 这可怎么办 首先来看一下是什么样的问题 xff1a 这个背景是不能选择的 问题分析 xff1a 这是因为你创建的画布的时候
  • eclipse下载与安装步骤详解,包含解决错误(最全最详细)

    以前一直用的是myeclipse 今天有幸接触eclipse 那我们就先来安装的配置一下 xff0c 下载地址 xff1a 点击下载密码 xff1a h0kg xff0c 下载完成以后就可以安装了 xff0c 首先我们来先安装jdk1 7
  • 如何在vm虚拟机里面安装win10操作系统

    首先打开虚拟机 xff0c 点击创建虚拟机 然后选择典型即可 xff01 选择稍后安装操作系统 然后选择win10 64位 然后在找个路径 xff1a 默认60GB即可 xff0c 也可以更改大小 xff1a 最后点击完成 xff1a 接下
  • 前端工程化 - 剖析npm的包管理机制

    导读 现如今 xff0c 前端开发的同学已经离不开 npm 这个包管理工具 xff0c 其优秀的包版本管理机制承载了整个繁荣发展的NodeJS社区 xff0c 理解其内部机制非常有利于加深我们对模块开发的理解 各项前端工程化的配置以加快我们
  • 学习笔记 | 核心网KPI异常检测

    核心网KPI异常检测 业务目标 核心网在运营商网络中位置高 xff0c 很少发生故障 但一旦发生故障 xff0c 对全网稳定性和服务质量影响很大 xff0c 另外 xff0c 有时候网络问题只影响小部分用户 xff0c 此时没有显性告警 x
  • imx8mp usb转四串口不能使用问题

    使用usb 4串口 xff0c 不能识别 xff0c 注册为 acm类 在 acm 类驱动 probe函数中 将通过usb idVen dor 过滤 drivers usb class cdc acm c printk 34 s x x n
  • k8s部署微服务

    一 安装nfs服务 由于资源有限 xff0c 以master节点所在虚拟机作为nfs服务器 1 确认是否安装nfs rpm qa nfs utils rpcbind 如果未安装 xff0c 则安装 nfs服务器上安装2个模块 xff1a y
  • windows下QtCreator配置clang环境

    1 下载clang版本 下载地址 xff1a https github com llvm llvm project releases tag llvmorg 12 0 0 我选择的是LLVM 12 0 0 win64 exe 下载后安装 x
  • Ubuntu20.04 tcp调试工具mNetAssist安装

    1 下载 tcp调试工具 mNetAssist deb下载地址 xff1a https cloud 189 cn t ra2M7juimAFb 访问码 k9kv 2 安装 用命令行安装软件如下 xff1a span class token
  • 为什么中断子程序中不能使用延时和过长的程序?

    A回答 xff1a 通常在中断子程序中是不调用延时子程序的 xff0c 这样会增加中断处理时间 xff0c 如果有其它低级中断了 xff0c 就会延误响应中断了 所以 xff0c 中断子程序中不要写调用延时子程序 xff0c 中断子程序也不
  • APP管理平台--后端篇,项目配置(一)

    作为一个Spring Boot Maven项目肯定会有各种配置 xff0c 配置Spring的 xff0c 配置Maven的 xff0c 还有数据库的 xff0c 甚至其他的 xff0c 也有不要Maven转向Gradle配置方式的 随心所
  • vscode C/C++ 调试配置

    本文目录 前言一 已有VSCODE环境可正常运行 c cpp文件二 以test cpp为例进行调试配置1 按F5 xff08 启动调试 xff09 利用vscode自动生成tasks json launch json2 对tasks jso

随机推荐

  • pixhawk飞控接口含义

    官方文档 xff1a https docs px4 io v1 9 0 en flight controller pixhawk html 1 spektrum DSM receiver2 xff0c 3 远程通信口 xff0c 接数传4
  • 非线性优化库学习资料:Ceres Gtsam G2o

    其中 Ceres 资料最完善也相对稳定 xff0c 是谷歌的非线性优化库 xff0c Google Cartographer 就是调用了该库 http www ceres solver org tutorial html 既可以作为 Cer
  • 解决ros抛出escalating to SIGTERM问题

    运行ros节点执行ctrl 43 c后进程会转而执行rosspin 后面的程序 xff0c 但是如果在一定时间内程序没有执行完毕 xff0c 进程会强制退出 xff0c 并抛出 escalating to SIGTERM 错误 xff0c
  • Ubuntu18.04 ros-melodic opencv版本冲突问题解决

    原链接 xff1a https blog csdn net Shushan1 article details 116588614 问题描述 ros自带的opencv版本和自己安装的opencv版本冲突导致如下报错 解决办法 修改cv bri
  • ubuntu中,出现Failed to fetch http://…..时,需要换源

    欢迎关注 xff1a 天际使徒的个人博客 问题描述 xff1a 出现Failed to fetch http 问题原因 xff1a 一般是由于直接使用国外的源无法连接的原因导致的解决方案 xff1a 直接替换成国内的源即可 xff08 1
  • yocto 使用技巧

    相当详细的文章就是转运一下 xff0c 方便大家阅读 xff0c 原版文章可以看原链接 对于大家使用Yocto中的一些疑问 xff0c 使用寥寥数语进行解答 xff0c 让大家快速高效地使用Yocto 1 Yocto 编译后文件放在了哪里
  • 基于蚁群算法的10个城市TSP问题的最短路径研究(附源码及讲解步骤)

    基于蚁群算法的10个城市TSP问题的最短路径研究 欢迎关注 xff1a 天际使徒的个人博客 1 蚁群算法 1 1 蚁群算法的流程步骤 这里以TSP问题为例 xff0c 算法设计的流程如下 xff1a 步骤1 xff1a 对相关参数进行初始化
  • (pycharm,typora,chrome补充中……)使用中,小tips

    欢迎关注 xff1a 天际使徒的个人博客 文章目录 pycharmpython解释器界面小说明 xff08 转载 https www cnblogs com xiashuai future p 11192346 html xff09 连按两
  • pycharm安装matplotlib失败(2020最新)

    欢迎关注 xff1a 天际使徒的个人博客 请修复网络 使用国内镜像速度会快很多 xff1a 临时使用 xff1a pip install i https pypi tuna tsinghua edu cn simple some packa
  • qq群文件无法打开显示内容?

    欢迎关注 xff1a 天际使徒的个人博客 解决方法 xff1a 打开ie浏览器 右上角齿轮 gt Internet选项 gt 连接 gt 局域网设置 只勾选 自动检测设置 把代理关了 就能正常显示
  • Windows10下开机任务栏透明TranslucentTB(其他需要自启动软件感觉可以通用)

    转载 xff1a https blog csdn net weixin 43977619 article details 109602040 下载运行 1 下载解压后可以直接运行TranslucentTB应用程序 TPS xff1a 链接已
  • 私藏搜索思路,怎么搜索信息更快更准?

    欢迎关注 xff1a 天际使徒的个人博客 当我们需要查点东西的时候 xff0c 自然而然会想到百度一下 xff0c 但是 xff0c 百度上的质量参差不齐 xff0c 需要筛选 下面我提供一种搜索信息的思路 百度一下 xff08 常识 xf
  • 连续区间多类型KPI异常检测

    文章目录 TitleSummaryResearch ObjectiveProblem StatementMethod s EvaluationConclusion Title ALSR An Adaptive Label Screening
  • KPI自动化异常检测系统——Opprentice

    论文 xff1a Opprentice Towards Practical and Automatic Anomaly Detection Through Machine Learning 文章目录 问题设计思想算法细节 问题 KPI类型很
  • 特征提取和深度学习的KPI异常检测方法—组合模型

    文章目录 简介挑战总体设计数据预处理特征提取数据均衡模型训练模型综合 方案来自于首届AIops挑战赛亚军团队 简介 问题场景就是运维中kpi异常检测 xff0c 希望可以提高检测的准确率 该团队的思路是提取特征然后用集成学习的方法将异常检测
  • docker 安装、升级

    docker 安装 升级 服务器版本 Centos 7 9 1 有外网情况下 docker 升级 镜像下载地址 xff1a https download docker com linux centos 7 x86 64 stable Pac
  • stty 命令说明及使用讲解

    UNIX系统的命令很多 xff0c 但是巧妙使用命令的方法更多 随着经验的积累和观察学习其他用户的实践 xff0c 我们也可学会解决特殊问题的方法 这里谈谈自己使用UNIX系统中stty命令的一些体会 xff0c 希望能与你共享 1 xff
  • Opencv3.4.1+contrib3.4.1+vs2017配置(主要解决了编译的时候找不到.lib文件的问题)

    一般出现找不到 lib库文件都是环境变量配置没弄好或者是依赖项或包含库没设置好 xff0c 下面是我的步骤 xff0c 大家可以参考以下 xff08 大家一定要注意环境变量哪里的bin别弄成lib xff0c 2天不断重装的血泪教训 xff
  • PX4概念

    本文针对多选翼飞行器 MANUAL ACRO 飞行器的输入作用于roll pitch和yaw的速率 油门直接作用于输出 RATTITUDE 如果飞行器的输入大于该模式下的阈值 xff0c 那么飞行器的输入将作用于roll pitch和yaw
  • 一道js编程题:用js实现栈的出栈,入栈等操作

    这是4月份某公司前端实习笔试的一道编程题 xff0c 要求是实现 xff1a 入栈 xff1a NumberStack push num 出栈 xff1a NumberStack pop 找出栈中第n大的数 xff1a NumberStac