当前位置: 首页 > news >正文

【力扣打卡系列】单调栈

坚持按题型打卡&刷&梳理力扣算法题系列,语言为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.输入一行字符&#xff0c;统计有多少单词9.有三个字符串&#xff0c;找到最大字符串 1.逆序数表达数组 #include<stdio.h> int…...

【Linux系列】在Linux下安装微信

文章目录 前言一、通用Linux系统使用Flatpak安装&#xff08;推荐&#xff09;1. 安装flatpak2. 安装微信 二、国产Linux 前言 此前&#xff0c;微信的Linux版一直在内测阶段&#xff0c;只有在国产的Linux系统和Debian系系统上可以正常安装&#xff0c;如果有心细的好伙伴应该…...

还在使用ElementUI不如试一试DaisyUI,DaisyUI: Tailwind CSS 的高效组件库,

DaisyUI: Tailwind CSS 的高效组件库 daisyUI官网&#xff1a;https://daisyui.com/ 在现代网页开发中&#xff0c;快速构建美观且响应式的用户界面是每个开发者追求的目标。Tailwind CSS 是一个流行的实用程序优先的 CSS 框架&#xff0c;它允许开发者直接在 HTML 中使用预…...

高光谱激光雷达遥感团队成员白杰博士获全国激光雷达优博论文奖

\quad \quad 2024年11月1日—4日&#xff0c;第八届全国激光雷达大会在桂林理工大学大学召开。本届大会&#xff0c;国际数字地球学会中国国家委员会激光雷达专业委员会组织了本年度优秀博士学位论文评选&#xff0c;经初评、函评、投票和公示&#xff0c;最终评选出了全国激光…...

24年配置CUDA12.4,Pytorch2.5.1,CUDAnn9.5运行环境

没什么好介绍的&#xff0c;直接说了。 下载 首先打开命令行&#xff0c;输入代码查看显卡最高支持的cuda版本&#xff0c;下载的版本不要高于该版本 nvidia-smi PyTorch 插件这个是PyTorch下载地址&#xff0c;就按照我这么选CUDA版本就选最新的&#xff0c;看好绿框里的CU…...

Office Custom UI Editor终极指南:30秒打造专属Office工作界面

Office Custom UI Editor终极指南&#xff1a;30秒打造专属Office工作界面 【免费下载链接】office-custom-ui-editor Standalone tool to edit custom UI part of Office open document file format 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editor …...

告别卡顿!Win11下用Process Lasso手动调度VMware虚拟机,榨干12/13代酷睿大小核性能

榨干12/13代酷睿潜力&#xff1a;Win11下VMware虚拟机性能调优实战指南 当你在Windows 11系统上运行VMware虚拟机时&#xff0c;是否遇到过这样的困扰&#xff1a;编译代码时进度条像蜗牛爬行&#xff0c;鼠标移动有明显的迟滞感&#xff0c;系统资源管理器显示CPU占用率并不高…...

WPF-VisionMasterOpenCV

WPF-VisionMasterOpenCV 一、项目概述 WPF-VisionMasterOpenCV 是一个基于 WPF EmguCV&#xff08;OpenCV的.NET封装&#xff09;开发的机器视觉软件框架。它采用节点流程图的方式&#xff0c;让用户可以通过拖拽节点来构建视觉检测流程。 项目架构 WPF-VisionMaster/ ├─…...

5分钟批量添加专业水印:让摄影作品自动展示相机参数

5分钟批量添加专业水印&#xff1a;让摄影作品自动展示相机参数 【免费下载链接】semi-utils 一个批量添加相机机型和拍摄参数的工具&#xff0c;后续「可能」添加其他功能。 项目地址: https://gitcode.com/gh_mirrors/se/semi-utils 还在为每一张照片手动添加相机参数…...

开源项目治理:ECC 社区贡献指南与协作模式

作者注&#xff1a;本文基于 ECC 项目的开源治理实践&#xff0c;帮助中国开发者理解如何参与大型开源项目并建立有效的协作流程。项目开源地址&#xff1a;github.com/affaan-m/ECC摘要 ECC&#xff08;Everything Claude Code&#xff09;是一个拥有 170 贡献者、28K Forks 的…...

如何用My-TODOs打造高效跨平台待办清单:免费开源桌面应用终极指南

如何用My-TODOs打造高效跨平台待办清单&#xff1a;免费开源桌面应用终极指南 【免费下载链接】My-TODOs A cross-platform desktop To-Do list. 跨平台桌面待办小工具 项目地址: https://gitcode.com/gh_mirrors/my/My-TODOs 在现代快节奏的工作生活中&#xff0c;高效…...

Longhorn分布式存储实践:构建高可用Kubernetes存储方案

Longhorn分布式存储实践&#xff1a;构建高可用Kubernetes存储方案 一、Longhorn概述 Longhorn是一个开源的分布式块存储系统&#xff0c;专为Kubernetes设计。它提供持久化存储解决方案&#xff0c;支持高可用性、数据冗余和自动故障转移。 Longhorn的核心特性&#xff1a;…...

我用AI一周做了个口播视频平台,现在开源了

做独立开发这两年&#xff0c;我一直在想一个问题&#xff1a;一个人到底能做到什么程度&#xff1f; 上周我给出了自己的答案——我用 DeepSeek 定义需求 CodeBuddy 辅助编码&#xff0c;一个人从零搞了一个 AI 口播视频生成平台&#xff0c;取名智播坊。输入文案&#xff0…...

安装 KubeSphere

安装 KubeSphere KubeSphere Core (ks-core) 是 KubeSphere 的核心组件&#xff0c;为扩展组件提供基础的运行环境。KubeSphere Core 安装完成后&#xff0c;即可访问 KubeSphere Web 控制台。 1. 安装 KubeSphere Core 在集群节点上&#xff0c;执行以下命令安装 KubeSpher…...

三步破解安全研发合规难题:Gitee软件工厂助力GJB5000B与等保三级高标准落地

TL;DR 国家安全领域软件研发需同时满足GJB5000B、等保2.0三级等强制合规要求与智能化装备带来的软件复杂度挑战。传统研发模式在协作、安全、交付三方面日益乏力。Gitee软件工厂通过“统一底座、细粒度权限、标准化流程”三大核心能力&#xff0c;内置SM2/SM4国密加密、IP白名单…...