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

【栈 - LeetCode】739.每日温度

739. 每日温度 - 力扣(LeetCode)

题解

暴力+技巧

官网给的一个暴力遍历的方式,技巧点在于,温度的最大值是 100, 因此里面的 for 循环可以通过控制最大是到 100 来降低时间复杂度。

class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {int n = temperatures.size();vector<int>ans(n), next(101, INT_MAX);for(int i = n - 1; i >= 0; i --){int index = INT_MAX;for(int t = temperatures[i] + 1; t <= 100; t ++){index = min(index, next[t]);}if(index != INT_MAX){ans[i] = index - i;}next[temperatures[i]] = i;}return ans;}
};

单调栈

栈中存储还没有被找到的 满足条件的 第 x 天。

如果是递增序列,栈中始终就一个元素,不断移入移出。

如果是非递增,则一直入栈,找到第一个大于栈顶的,再依次出栈判断。

class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {int n = temperatures.size();vector<int> ans(n);stack<int> s;for (int i = 0; i < n; i++) {while (!s.empty() && temperatures[i] > temperatures[s.top()]) {int index = s.top();ans[index] = i - index;s.pop();}s.push(i);}return ans;}
};

http://www.dtcms.com/a/349841.html

相关文章:

  • 深入理解JVM垃圾收集器:垃圾收集器
  • Vue3 + Golang Gin 实现客服实时聊天系统(WebSocket + Socket.IO 详解)
  • Maven、Spring Boot、Spring Cloud以及它们的相互关系
  • iptables 防火墙技术详解
  • 如何通过虚函数实现多态?
  • 文入门Ubuntu:从零到精通的Linux之旅
  • 数学建模-整数规划(IP)
  • FunASR语音识别框架流式识别模型切换
  • SpringBoot的条件装配原理
  • SpringBoot3集成Oauth2.1——10重启程序Token失效(RSA持久化)
  • Java项目-苍穹外卖_Day1
  • Visual Studio 2022调试Eigen库查看矩阵与向量的值
  • 大模型知识点之矩阵乘以向量
  • springboot:前后端调用(axios发送异步请求)
  • 那我现在有3个输入 9层神经元 每层神经元数为 3 9 3 5 6 2 3 9 8 请给出我所有的权重矩阵
  • 图论水题5
  • ansible的搭建与安装
  • BIO、NIO 和 AIO
  • 智慧城市SaaS平台/交通设施运行监测系统之桥梁运行监测、城市道路塌陷风险运行监测系统架构内容
  • v-slot 与 slot-scope区别
  • 开源零信任本地化部署实战指南:Keycloak + OpenZiti 完整方案
  • [element-plus] el-table在行单击时获取行的index
  • JAVA高级工程师--云服务模式多租户SAAS项目商业模式架构全景
  • 【数据可视化-98】2025年上半年地方财政收入Top 20城市可视化分析:Python + Pyecharts打造炫酷暗黑主题大屏
  • 【Java基础】快速掌握Java泛型机制:基本概念与具体应用
  • 工具系列:JsonViewKit
  • Frida 加密解密算法实现与应用指南
  • kafka 原理详解
  • 代码随想录算法训练营30天 | ​​01背包理论基础、416. 分割等和子集
  • Radxa Rock 5B vs Rock 5B+ 、香橙派、鲁班猫、正点原子及RK3588 的AI/音视频任务的选择