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

【刷题】力扣739.每日温度

739. 每日温度

一开始错误代码:

class Solution { public: vector<int> dailyTemperatures(vector<int>& temperatures) { stack<int> st; int len=temperatures.size(); vector<int> res(len,0); // st.push(0); for(int i=0;i<len;i++){ //如果新进来的元素符合单调减的栈,直接入栈 if(!st.empty() && temperatures[i]<=temperatures[st.top()]){ st.push(i);//存下标 方便记录差了几天 } else{//如果大的话就依次找栈之前的元素 while(!st.empty() && temperatures[i]>temperatures[st.top()]){ // res[st.top()]=i-st.top(); res[i]++; st.pop(); } st.push(i); } } return res; } };

我一开始以为:while 循环每执行一次,就代表多等了一天

但实际是:while 循环每执行一次,就找到了一个元素的答案,答案 =i - st.top()(直接算出间隔天数)

总结就是:res[i]++是在给“当前温度”累加,但“当前温度”是那个更大的温度,它不应该在这里被加。应该给“被弹出的栈顶温度”赋值间隔天数。

正确代码如下:

class Solution { public: vector<int> dailyTemperatures(vector<int>& temperatures) { stack<int> st; int len=temperatures.size(); vector<int> res(len,0); // st.push(0); for(int i=0;i<len;i++){ //如果新进来的元素符合单调减的栈,直接入栈 if(!st.empty() && temperatures[i]<=temperatures[st.top()]){ st.push(i);//存下标 方便记录差了几天 } else{//如果大的话就依次找栈之前的元素 while(!st.empty() && temperatures[i]>temperatures[st.top()]){ res[st.top()]=i-st.top(); st.pop(); } st.push(i); } } return res; } };

上面是根据逻辑写出来的,会有冗余代码,优化后如下:

class Solution { public: vector<int> dailyTemperatures(vector<int>& temperatures) { stack<int> st; int len=temperatures.size(); vector<int> res(len,0); for(int i=0;i<len;i++){ while(!st.empty() && temperatures[i]>temperatures[st.top()]){ res[st.top()]=i-st.top(); st.pop(); } st.push(i); } return res; } };
http://www.jsqmd.com/news/753607/

相关文章:

  • 基于Go与Wails的本地AI智能体WinClaw:原理、部署与Python技能扩展
  • 避坑指南:MindFormers框架中tokenizers版本兼容性引发的那些‘坑’(以ChatGLM2为例)
  • 如何快速配置ViGEmBus虚拟手柄驱动:Windows游戏兼容性终极解决方案
  • 别再复制粘贴了!手把手教你为STM32F103C8T6搭建一个干净、可复用的固件库工程模板
  • 终极德州扑克GTO求解器:5个快速提升扑克水平的免费工具
  • 2026拉萨卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • YOLO11涨点优化:Neck二次创新 | 融合FPT (Feature Pyramid Transformer),在空间、通道、尺度三个维度全方位交互
  • kaggle cli无法下载大数据集
  • 2026济南卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • VECT 2.0勒索软件深度剖析:伪装成加密工具的致命数据擦除器
  • 【C语言】static 关键字详解
  • LeetCode 73. matrix置0(文章重点是怎样打印二维数组)
  • 从H桥驱动到电源防反接:手把手教你选型MOS管(附NMOS/PMOS实战对比)
  • 手把手教你配置KingbaseES V8R6,搞定等保2.0数据库测评里的身份鉴别与访问控制
  • NCSC预警2026:AI引爆全球补丁浪潮 网络安全新常态深度解析与企业应对指南
  • 2026杭州卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • 利用 Taotoken 模型广场为不同任务快速匹配合适的大模型
  • Axolotl是什么?一文带你入门大模型微调框架-原理源码解析
  • CanMV K230实战:把手写数字识别模型‘塞’进边缘端,性能与精度实测
  • 别再为脑网络数据发愁了!手把手教你用BrainGB复现GNN基准实验(附完整代码)
  • 如何快速构建智能四足机器人:openDogV2完整开发指南
  • 2026福州卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • CVE-2026-41940深度剖析:cPanel/WHM零日认证绕过漏洞如何让百万服务器裸奔
  • 从Ensembl ID到Gene Symbol:一份给生信小白的R语言基因注释避坑指南
  • 联邦学习梯度聚合全解析:从核心原理到产业未来
  • CentOS 9 编译 OpenSSH 9.3.2p2 后,sshd 服务无限重启?手把手教你修复 systemd 通知问题
  • 从零搭建安全实验室:如何用Fscan在CentOS上快速构建你的第一个内网靶场
  • string及其常用操作【上】
  • 这次生成的这个测试网站还有点意思 - AI
  • Deep#Door深度解析:隐藏在批处理脚本中的2026年新型Windows RAT技术革命