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

单调栈简单习题分析

Leetcode 739

给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。

分析:

单调栈本身是啥?其实就是一个普通栈,但这个栈有一个特性,栈中的元素有一个特点就是单调,要不是单调递增要不就是单调递减(两者都包含相等元素情况)。

每次都要将要加入栈中的元素与栈顶元素进行比较判断,符合条件(递增或递减)就保留存入栈中,但不符合就是要进行实现题目的要求,进行相应的操作后,弹出栈顶元素,但这还没完,要继续与新的栈顶元素进行比较判断,如果符合了就将这个元素加入栈中,成为新的栈顶元素。以此类推直达全部元素都操作完成。

代码:

class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {vector<int>result(temperatures.size(),0);stack<int> st;st.push(0);for(int i=1;i<temperatures.size();i++){if(temperatures[i]<temperatures[st.top()]||temperatures[i]==temperatures[st.top()]){st.push(i);}else{while(!st.empty()&&temperatures[st.top()]<temperatures[i]){result[st.top()]=i-st.top();st.pop();}st.push(i);//在判断完后加入栈中  不要遗漏}}return result;}
};

http://www.xdnf.cn/news/6121.html

相关文章:

  • Web安全核心内容与常见漏洞总结
  • EasyConnect卸载大汇总
  • vulnhub靶场——secarmy
  • 动态多因子策略
  • RDD的自定义分区器
  • stm32 ADC单通道转换
  • 反射, 注解, 动态代理
  • 【PSINS工具箱】基于工具箱的单独GNSS导航、单独INS导航、两者结合组合导航,三种导航的对比程序。附完整的代码
  • 一文理解扩散模型(生成式AI模型)(2)
  • 使用 Docker Desktop 安装 Neo4j 知识图谱
  • VastBase的日常操作记录
  • Qt功能区:简介与安装
  • JS中本地存储(LocalStorage)和会话存储(sessionStorage)的使用和区别
  • vscode - 笔记
  • Deep Learning(手写字识别 - CNN)
  • Python算法思想
  • 企业级IP代理解决方案:负载均衡与API接口集成实践
  • 【导航信号模拟器】【MATLAB APP】MATLAB AppDesigner基本使用教程
  • DA14531如何在固件中生成与时间相关的mac和版本号
  • react+html-docx-js将页面导出为docx
  • 没经过我同意,flink window就把数据存到state里的了?
  • Java 大视界——Java 大数据在智慧交通智能停车诱导系统中的数据融合与实时更新
  • 命令行快速上传文件到SFTP服务器(附参考示例)
  • 灰度图像和RGB图像在数据大小和编码处理方式差别
  • lanqiaoOJ 652:一步之遥 ← 扩展欧几里得定理
  • ESP32-S3R8 使能PSRAM内存
  • 【嵌入式笔记】Modbus TCP
  • 鬼泣:蓄力攻击总结
  • 《AI大模型应知应会100篇》第63篇:AutoGPT 与 BabyAGI:自主代理框架探索
  • 计算机网络:怎么理解调制解调器的数字调制技术?