【力扣打卡系列】单调栈
坚持按题型打卡&刷&梳理力扣算法题系列,语言为go,Day20
单调栈
- 题目描述

- 解题思路
- 单调栈
- 后进先出
- 记录的数据加在最上面
- 丢掉数据也先从最上面开始
- 单调性
- 记录t[i]之前会先把所有小于等于t[i]的数据丢掉,不可能出现上面大下面小的情况
- 倒着遍历,while遍历,遇到小的就pop,然后把当前值加进去,栈顶即为最近的大于当前i值对应的数,要存的值就是st[-1]-i
- 优化的地方:每次拿到元素时就应该和栈顶元素进行比较,直到栈空或者扫描结束
- 思想:及时去掉无用的数据,保证栈内数据的有序
- 后进先出
- 单调栈
- 代码参考
func dailyTemperatures(temperatures []int) []int {ans := make([]int,len(temperatures))st := []int{}for i,j := range slices.Backward(temperatures){for len(st) > 0 && j>=temperatures[st[len(st)-1]]{ //注意此处是大于等于st = st[:len(st)-1]}if len(st) > 0{ans[i] = st[len(st)-1] - i}st =append(st,i)}return ans
}
- tips
- 注意倒序遍历的写法:for i,j := range slices.Backward(temperatures)
- 将ans定义为一个定长切片:ans := make([]int,len(temperatures))
- st = st[:len(st)-1]
st[:len(st)-1]是对字符串st进行切片操作,它取从字符串开始到长度减去1的位置的子字符串。切片操作在 Go 语言中是通过字符串[开始索引:结束索引]来实现的。st = st[:len(st)-1]将切片操作的结果重新赋值给变量st,这样st就更新为去掉了最后一个字符的新字符串
相关文章:
【力扣打卡系列】单调栈
坚持按题型打卡&刷&梳理力扣算法题系列,语言为go,Day20 单调栈 题目描述 解题思路 单调栈 后进先出 记录的数据加在最上面丢掉数据也先从最上面开始 单调性 记录t[i]之前会先把所有小于等于t[i]的数据丢掉,不可能出现上面大下面小的…...
使用docker安装zlmediakit服务(zlm)
zlmediakit安装 zlmediakit安装需要依赖环境和系统配置,所以采用docker的方式来安装不容易出错。 docker pull拉取镜像(最新) docker pull zlmediakit/zlmediakit:master然后先运行起来 sudo docker run -d -p 1935:1935 -p 80:80 -p 8554:554 -p 10000:10000 -p …...
SOLID原则-单一职责原则
转载请注明出处:https://blog.csdn.net/dmk877/article/details/143447010 作为一名资深程序员越来越感觉到基础知识的重要性,比如设计原则、设计模式、算法等,这些知识的长期积累会让你突破瓶颈实现质的飞跃。鉴于此我决定写一系列与此相关的博客&…...
Transformer究竟是什么?预训练又指什么?BERT
目录 Transformer究竟是什么? 预训练又指什么? BERT的影响力 Transformer究竟是什么? Transformer是一种基于自注意力机制(Self-Attention Mechanism)的神经网络架构,它最初是为解决机器翻译等序列到序列(Seq2Seq)任务而设计的。与传统的循环神经网络(RNN)或卷…...
Jdbc批处理功能和MybatisPlus
文章目录 1. 序言2. JDBC批处理功能和rewriteBatchedStatements3. JDBC批量插入的测试4. MybatisPlus#ServiceImpl.saveBatch()5. 结语:如果对大家有帮助,请点赞支持。如果有问题随时在评论中指出,感谢。 1. 序言 MybatisPlus的ServiceImpl类…...
对于相对速度的重新理解
狭义相对论速度合成公式如下, 现在让我们尝试用另一种方式把它推导出来。 我们先看速度的定义, 常规的速度合成方式如下, 如果我们用速度的倒数来理解速度, 原来的两个相对速度合成, 是因为假定了时间单位是一样的&am…...
Scala的属性访问权限(一)默认访问权限
//eg:银行账户存钱取钱 // 账户类: // -balance() 余额 // -deposit() 存钱 // -withdraw() 取钱 // -transfer(to:账户,amount:Dobule)转账 package Test1104 //银行账户class BankAccount(private var balance:Int){def showMoney():Unit {println(s"…...
【算法】(Python)贪心算法
贪心算法: 又称贪婪算法,greedy algorithm。贪心地追求局部最优解,即每一步当前状态下最优选择。试图通过各局部最优解达到最终全局最优解。但不从整体最优上考虑,不一定全局最优解。步骤:从初始状态拆分成一步一步的…...
条件logistic回归原理及案例分析
前面介绍的二元、多分类、有序Logistic回归都属于非条件Logistic回归,每个个案均是相互独立关系。在实际研究中,还有另外一种情况,即个案间存在配对关系,比如医学研究中配对设计的病例对照研究,此时违反了个案相互独立…...
redis7学习笔记
文章目录 1. 简介1.1 功能介绍1.1.1 分布式缓存1.1.2 内存存储和持久化(RDBAOF)1.1.3 高可用架构搭配1.1.4 缓存穿透、击穿、雪崩1.1.5 分布式锁1.1.6 队列 1.2 数据类型StringListHashSetZSetGEOHyperLogLogBitmapBitfieldStream 2. 命令2.1 通用命令copydeldumpexistsexpire …...
重学Android:自定义View基础(一)
前言 作为一名安卓开发,也被称为大前端,做一个美观的界面,是我们必备的基础技能,可能在开发中我们最常用的是系统自带的View,因为他能满足绝大部分需求,难一点的我们也可以上Github上找个三方库使用&#…...
前端好用的网站分享——CSS(持续更新中)
1.CSS Scan 点击进入CSS Scan CSS盒子阴影大全 2.渐变背景 点击进入color.oulu 3.CSS简化压缩 点击进入toptal 4.CSS可视化 点击进入CSS可视化 这个强推,话不多说,看图! 5.Marko 点击进入Marko 有很多按钮样式 6.getwaves 点击进入getwaves 生…...
华为HarmonyOS借助AR引擎帮助应用实现虚拟与现实交互的能力3-获取设备位姿
设备位姿描述了物体在真实世界中的位置和朝向。AR Engine提供了世界坐标下6自由度(6DoF)的位姿计算,包括物体的位置(沿x、y、z轴方向位移)和朝向(绕x、y、z轴旋转)。通过AR Engine,您…...
qt QColorDialog详解
1、概述 QColorDialog是Qt框架中的一个对话框类,专门用于让用户选择颜色。它提供了一个标准的颜色选择界面,其中包括基本的颜色选择器(如调色板和颜色轮)、自定义颜色输入区域以及预定义颜色列表。QColorDialog支持RGB、HSV和十六…...
【测试小白--如何写好测试用例--测试用例编写的方法+结合常见登录模块为实例--保姆级教学】
测试用例编写方法&登录模块实例 一、测试用例编写方法1. 等价类划分2. 边界值分析3. 状态转换测试4. 决策表测试5. 错误推测6. 用户场景测试7. 安全测试用例 二、登录模块测试用例实例1. 等价类划分2. 边界值分析3. 状态转换测试4. 决策表测试5. 错误推测6. 用户场景测试7.…...
真题--数组循环题目
1.逆序数表达数组2.用数组表示费波纳希数列3.用数组排序4.二维数组转置5.找到二维数组其中的最大数值6.输出字符数组7.字符数组输出菱形图案8.输入一行字符,统计有多少单词9.有三个字符串,找到最大字符串 1.逆序数表达数组 #include<stdio.h> int…...
【Linux系列】在Linux下安装微信
文章目录 前言一、通用Linux系统使用Flatpak安装(推荐)1. 安装flatpak2. 安装微信 二、国产Linux 前言 此前,微信的Linux版一直在内测阶段,只有在国产的Linux系统和Debian系系统上可以正常安装,如果有心细的好伙伴应该…...
还在使用ElementUI不如试一试DaisyUI,DaisyUI: Tailwind CSS 的高效组件库,
DaisyUI: Tailwind CSS 的高效组件库 daisyUI官网:https://daisyui.com/ 在现代网页开发中,快速构建美观且响应式的用户界面是每个开发者追求的目标。Tailwind CSS 是一个流行的实用程序优先的 CSS 框架,它允许开发者直接在 HTML 中使用预…...
高光谱激光雷达遥感团队成员白杰博士获全国激光雷达优博论文奖
\quad \quad 2024年11月1日—4日,第八届全国激光雷达大会在桂林理工大学大学召开。本届大会,国际数字地球学会中国国家委员会激光雷达专业委员会组织了本年度优秀博士学位论文评选,经初评、函评、投票和公示,最终评选出了全国激光…...
24年配置CUDA12.4,Pytorch2.5.1,CUDAnn9.5运行环境
没什么好介绍的,直接说了。 下载 首先打开命令行,输入代码查看显卡最高支持的cuda版本,下载的版本不要高于该版本 nvidia-smi PyTorch 插件这个是PyTorch下载地址,就按照我这么选CUDA版本就选最新的,看好绿框里的CU…...
毕业设计实战:基于Java+MySQL的教务管理系统设计与实现指南
毕业设计实战:基于JavaMySQL的教务管理系统设计与实现指南 在开发“基于JavaMySQL的教务管理系统”毕业设计时,曾因课程报名表未通过学生ID与课程ID双外键关联踩过关键坑——初期仅设计报名编号、报名时间等基础字段,未与学生表、课程表建立关…...
Mermaid在线编辑器终极指南:从代码思维到专业图表的无缝转换体验
Mermaid在线编辑器终极指南:从代码思维到专业图表的无缝转换体验 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-l…...
Jenkins vs GitLab CI/CD:2026 企业级 CI/CD 工具深度选型评测
Jenkins vs GitLab CI/CD:2026 企业级 CI/CD 工具深度选型评测 作为在 CI/CD 领域摸爬滚打十余年的全栈老兵,我见证了从手工部署到云原生 DevOps 的完整演进。今天,我们将抛开宗教战争式的争论,用真实数据和生产环境案例ÿ…...
音乐版权侵权避坑指南:明星翻唱踩的红线,这些行为也在踩
短视频/直播/门店公播全场景合规方案 正版商用音乐授权平台推荐央广网北京3月30日消息(记者费权)近日,歌手单依纯在深圳演唱会上未经授权演唱李荣浩原创作品《李白》,而此前李荣浩方已明确婉拒其版权授权申请,中国音乐…...
C语言编程基础与核心概念详解
1. C语言入门基础解析C语言作为编程世界的基石语言,其简洁高效的特性使其在系统编程、嵌入式开发等领域占据不可替代的地位。我第一次接触C语言是在大学计算机系的实验室里,那个打印出"Hello World"的瞬间至今记忆犹新。让我们从最基础的部分开…...
新手福音:无需github,在快马平台轻松入门第一个web应用
最近在学前端开发时,发现很多教程都推荐从GitHub克隆项目来练习,但GitHub经常访问不稳定,对新手特别不友好。好在发现了InsCode(快马)平台,不用折腾GitHub就能直接上手写代码,特别适合我这种刚入门的小白。今天就用它做…...
Qwen3-VL:30B多模态提示词工程:Clawdbot中优化图文提问格式提升飞书响应质量
Qwen3-VL:30B多模态提示词工程:Clawdbot中优化图文提问格式提升飞书响应质量 1. 引言:从部署到优化的进阶之路 在上一篇文章中,我们已经成功在星图AI云平台部署了Qwen3-VL:30B多模态大模型,并通过Clawdbot搭建了基础框架。现在面…...
无需安装jupyter notebook,在快马平台5分钟搭建你的第一个数据分析原型
今天想和大家分享一个快速搭建数据分析原型的经验。作为一个经常需要验证想法的数据分析师,最头疼的就是每次换电脑或重装系统后配置Jupyter Notebook环境的过程。最近发现了一个超省心的解决方案,不用本地安装就能直接开搞数据分析。 为什么选择云端Ju…...
OpenAI推出Safety Bug Bounty计划:聚焦AI滥用与安全风险
OpenAI正式启动公共Safety Bug Bounty(安全漏洞赏金计划),旨在鼓励全球研究人员识别其产品中存在的AI滥用行为和安全风险。该计划托管于Bugcrowd平台,是对现有Security Bug Bounty的重要补充,专门处理那些虽不符合传统…...
硬件基础常识【2】--BJT深度饱和区的参数设计与工程实践
1. BJT深度饱和区的核心参数设计 三极管作为电子设计中最基础的元器件之一,其开关特性在实际工程中应用极为广泛。要让BJT稳定工作在深度饱和区,关键是要掌握几个核心参数的相互关系。我当年在设计第一个开关电路时,就因为没吃透这些参数关系…...
