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

单调栈简单习题分析

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.dtcms.com/a/190736.html

相关文章:

  • 【免杀】C2免杀技术(三)shellcode加密
  • 深度学习中.cuda()、.eval()与no_grad详解
  • 深度学习入门:卷积神经网络
  • 解密企业级大模型智能体Agentic AI 关键技术:MCP、A2A、Reasoning LLMs-强化学习算法AlphaGo
  • NeurIPS Paper Checklist中文翻译
  • 如何下载和安装 Ghost Spectre Windows 11 24H2 PRO
  • CD38.【C++ Dev】string类的模拟实现(2)
  • 深入理解卷积神经网络:从基础原理到实战应用
  • 2025年道路运输安全员考试题库及答案
  • vulnhub靶场——secarmy
  • Python知识框架
  • SSH秘钥配置介绍
  • 44、私有程序集与共享程序集有什么区别?
  • 怎么实现Redis的高可用?
  • GraphPad Prism简介、安装与工作界面
  • 【CUDA】Sgemm单精度矩阵乘法(下)
  • 使用mermaid 语言绘画时序图和链路图
  • 编程日志5.5
  • 计算机网络:怎么理解调制解调器的数字调制技术?
  • SDIO EMMC中ADMA和SDMA简介
  • Ansible Roles 是一种用于层次化和结构化组织 Ansible Playbook 的机制。
  • [已解决] VS Code / Cursor / Trae 的 PowerShell 终端 conda activate 进不去环境的常见问题
  • Windows 环境下安装 Node 和 npm
  • 【Pandas】pandas DataFrame describe
  • Java 大视界 -- 基于 Java 的大数据分布式存储在工业互联网海量设备数据长期存储中的应用优化(248)
  • vscode - 笔记
  • 采用均线策略来跟踪和投资基金
  • x-IMU matlab zupt惯性室内定位算法
  • 南审计院考研分享会 经验总结
  • springboot踩坑记录