【LeetCode每日一题】1944. 队列中可以看到的人数(单调栈)

2024-1-5

文章目录

  • [1944. 队列中可以看到的人数](https://leetcode.cn/problems/number-of-visible-people-in-a-queue/)
            • 思路:

1944. 队列中可以看到的人数

在这里插入图片描述

在这里插入图片描述

思路:

1.采用单调栈,从最后一个高度开始,从后往前进行遍历

2.用一个循环,先解决比当前低的身高

3.因为栈不为空且栈顶比现在身高低,当前身高把栈顶身高挡住了,栈顶无法影响后续,弹出,记录看到的低栈顶

4.当前栈不为空,并且之前已经排除了比当前栈顶元素低的,所以当前栈顶元素比当前身高要高,记录看到的这个高的

5.每次循环,都对当前身高进行压栈,用来更新栈顶元素。

//1944. 队列中可以看到的人数---单调栈public int[] canSeePersonsCount(int[] heights) {int n = heights.length;Deque<Integer> stack = new ArrayDeque<>();int[]answer = new int[n];for (int i = n-1; i >=0 ; i--) {//int h = heights[i];while (!stack.isEmpty()&&stack.peek()<heights[i]){////栈不为空且当前高度大于栈顶元素stack.pop();//当前高度把栈顶挡住了,栈顶出栈,看栈中的下一个元素answer[i]++;//看到了一个比当前低的,加1}if (!stack.isEmpty()){//栈不为空,当前高度小于栈顶元素answer[i]++;//只能看到栈顶,能看见一个比当前高的,加1}stack.push(heights[i]);//当前高度压栈}return answer;}

点击移步博客主页,欢迎光临~

偷cyk的图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/323320.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记一次http换成https的过程

记一次http换成https的过程 http默认端口是80&#xff0c;https默认端口是443&#xff0c;此文章主要记录一次网站配置https的过程。 1. 下载申请下载ssl证书 SSL证书是由证书颁发机构审核验证后颁发的&#xff0c;这种颁发机构也叫CA机构&#xff0c;是一个受信任的数字证书…

目标检测-One Stage-YOLOv2

文章目录 前言一、YOLOv2的网络结构和流程二、YOLOv2的创新点预处理网络结构训练 总结 前言 根据前文目标检测-One Stage-YOLOv1可以看出YOLOv1的主要缺点是&#xff1a; 和Fast-CNN相比&#xff0c;速度快&#xff0c;但精度下降。&#xff08;边框回归不加限制&#xff09;…

Android studio SurefaceView 视频播放器应用设计

一、新建Empty Activity项目: 二、xml布局文件设计: 添加SurfaceView控件 <SurfaceViewandroid:id="@+id/surfaceView"android:layout_width="match_parent"android:layout_height="match_parent"app:layout_constraintBottom_toBottomOf…

工业城市的废水监控系统

前言 很多工业城市的废水排放量较大&#xff0c;已造成城市地表水的严重污染。各城市的环境监测中心站肩负着对城市地表环境水质及污染源排放废水的监测工作&#xff0c;很多城市相继形成了以市站为网头&#xff0c;与区站、行业站构成一体的废水监测网。 为提高水质监测能力建…

SwiftUI 打造一款收缩自如的 HStack(三):“魔镜魔镜,我爱你”

概览 在前两篇博文中,我们分别讨论了用 HStack 和 对齐+ZStack 来实现收缩自如“HStack”的方法。 虽然看起来“各有千秋”,但实际上它们都拖着一坨厚重的 datas,这不禁为其“减分不少”。 而从上图演示中可以看到:我们完全摆脱了 datas 数据的桎梏,现在我们可以按照轻松…

基于Java学生成绩管理系统设计与实现(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

flutter 五:MaterialApp

MaterialApp const MaterialApp({super.key,this.navigatorKey, //导航键this.scaffoldMessengerKey, //scaffold管理this.home, //首页Map<String, WidgetBuilder> this.routes const <String, WidgetBuilder>{}, //路由this.initialRoute, //初始路由th…

vivado non-project

https://www.xilinx.com/video/hardware/using-the-non-project-batch-flow.html --video https://cloud.tencent.com/developer/article/1169476 bd related run_my_design.tcl 交互模式 start_gui stop_gui

Python中User-Agent的重要作用及实际应用

摘要&#xff1a; User-Agent是HTTP协议中的一个重要字段&#xff0c;用于标识发送请求的客户端信息。在Python中&#xff0c;User-Agent的作用至关重要&#xff0c;它可以影响网络请求的结果和服务器端的响应。将介绍User-Agent在Python中的重要作用&#xff0c;并结合实际案…

链表--141.环形链表/easy C级理解

141.环形链表 1、题目2、题目分析3、解题步骤4、复杂度最优解代码示例5、抽象与扩展 1、题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链…

BUG汇总

20240103 通用&#xff0c;驼峰命名法&#xff0c;mybatis。 mybatis入门程序中&#xff0c; // 获取对象的顺序为&#xff1a;SqlSessionFactoryBuild-》SqlSessionFactory-》SqlSessionSqlSessionFactoryBuilder sqlSessionFactoryBuilder new SqlSessionFactoryBuilder();I…

Python 深度学习框架之keras库详解

概要 深度学习已经成为解决各种复杂问题的有力工具&#xff0c;而 Python Keras 是一个流行的深度学习框架&#xff0c;它提供了简单而强大的工具来构建和训练神经网络。无论您是深度学习新手还是经验丰富的研究人员&#xff0c;Keras 都可以满足您的需求。本文将深入介绍 Pyt…