【LeetCode75】第七十四题 每日温度

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

题目给我们一个数组,表示每天的温度,要我们返回一个同样长度的数组,答案里装着当前气温的下一个更高气温的距离天数。也就是找到数组中这个数的下一个更大的数,答案填入他们的距离。

那么找到下一个更大或者是更小的值这类题,我们可以使用单调栈来解决。

单调栈顾名思义,是一个栈,不过我们需要维持栈内是单调有序的。

我们把元素依次和栈顶元素对比,如果比栈顶元素更小,我们就接着入栈,直到遇到了比栈顶元素更大的值,我们就将栈顶元素出栈,并且就算是找了第一个比栈顶元素更大的值,这一过程一直重复,直到这个元素小于新的栈顶元素了,我们再接着把这个元素入栈。

这样就保持了栈内有序,并且遍历数组完毕之后,我们也找到了每个数的下一个更大元素。

我们入栈的是数组的下标,这样就可以计算出下一个更大数的距离了,并且我们也可以通过下标来获取到对应的值。

代码:

class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {vector<int>res(temperatures.size(),0);  //一律先初始化为0,有更高气温出现再修改vector<int>stack;   //vector模拟栈for(int i=0;i<temperatures.size();i++){if(stack.empty()){  //如果栈空直接加入stack.push_back(i);}else{//遇到比栈顶更高的气温,那么更新答案中栈顶气温的下标的值//因为当前气温可能会比多个之前的气温更高,所以用whilewhile(!stack.empty()&&temperatures[i]>temperatures[*(stack.end()-1)]){int last=*(stack.end()-1);res[last]=i-last;stack.pop_back();}stack.push_back(i);}}return res;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/140572.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据Hadoop之——部署hadoop+hive+Mysql环境(window11)

一、安装JDK8 【温馨提示】对应后面安装的hadoop和hive版本&#xff0c;这里使用jdk8&#xff0c;这里不要用其他jdk了&#xff0c;可能会出现一些其他问题。 1&#xff09;JDK下载地址 Java Downloads | Oracle 按正常下载是需要先登录的&#xff0c;这里提供一个不用登录下载…

ES6(ECMAScript 2015)有哪些新属性,如何判断当前浏览器是否支持?

ES6&#xff08;ECMAScript 2015&#xff09;引入了许多新的语法和特性&#xff0c;以增强 JavaScript 编程语言的功能。以下是一些常见的 ES6 语法和特性以及它们的解释&#xff1a; let 和 const 声明&#xff1a; let 和 const 用于声明变量&#xff0c;代替了旧的 var 关键…

App出海起量难?传参安装打开获客增长新途径

近年来&#xff0c;在App出海潮越发热烈的背景下&#xff0c;如何适应海外市场并实现“用户增长”与“提高转化”&#xff0c;已成为出海团队需要面临的重大挑战之一。 如何在海外市场短时间内快速起量&#xff1f;这个问题难倒了不少出海创业者&#xff0c;毕竟目前互联网环境…

ES|QL:Elasticsearch的 新一代查询语言

作者&#xff1a;李捷 “学会选择很难。学会正确选择更难。而在一个充满无限可能的世界里学会正确选择则更难&#xff0c;也许是太难了。” 巴里-施瓦茨&#xff08;Barry Schwartz&#xff09;在《选择的悖论--多就是少》&#xff08;The Paradox of Choice -More is Less&…

分享一下微信小程序里的预约链接怎么做

微信小程序是一种无需下载安装即可使用的应用程序&#xff0c;它依托于微信平台&#xff0c;为用户提供了更加便捷的使用体验。在小程序中&#xff0c;我们可以制作预约链接&#xff0c;以便用户直接在微信中进行预约&#xff0c;提高服务效率。下面我们将探讨如何制作微信小程…

如何选择适合自己的跨境商城源码

选择适合自己的跨境商城源码是每个想要开展跨境电商业务的企业所面临的重要决策。源码的选择直接关系到商城功能的完整性、运营的便捷性以及未来的可定制性。在众多源码供应商中&#xff0c;我们为您提供以下几点参考&#xff0c;帮助您做出明智的选择。 1. 功能完整性 一个适合…

Linux高性能服务器编程——ch2笔记

第2章 IP 协议详解 2.1 IP服务的特点 无状态&#xff1a;IP通信双方不同步传输数据的状态信息。IP数据报相互独立&#xff0c;缺点是无法处理乱序和重复的IP数据报。上层协议如果是面向连接的协议&#xff08;TCP&#xff09;&#xff0c;能够自己处理乱序和重复的报文段。IP…

一百九十、Hive——Hive刷新分区MSCK REPAIR TABLE

一、目的 在用Flume采集Kafka中的数据直接写入Hive的ODS层静态分区表后&#xff0c;需要刷新表&#xff0c;才能导入分区和数据。原因很简单&#xff0c;就是Hive表缺乏分区的元数据 二、实施步骤 &#xff08;一&#xff09;问题——在Flume采集Kafka中的数据写入HDFS后&am…

怎么就火了?小红书“早八人”研究

不久前&#xff0c;小红书「早八课」开讲&#xff0c;通勤旅行、植物赏鉴、遛狗哲学等&#xff0c;鼓励用户早起学习“奇奇怪怪”的知识点。 同期&#xff0c;上线相关话题#我的早八打开方式#浏览量700W&#xff0c;如何“化早八的痛苦为美好”成为大众所趋。本期千瓜将结合早…

Leetcode.4 寻找两个正序数组的中位数

题目链接 Leetcode.4 寻找两个正序数组的中位数 hard 题目描述 给定两个大小分别为 m m m 和 n n n 的正序&#xff08;从小到大&#xff09;数组 n u m s 1 nums1 nums1 和 n u m s 2 nums2 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O…

SPSS|偏度和峰度|正态性分布检验|实战小练-SPSS学习(1)

目录 学习目的软件版本基础数据实战数据准备数据初探输出结果分析两个重要统计量&#xff1a;偏度和峰度正态性检验结果其他图件输出 学习目的 检验数据集是否服从正态分布。 软件版本 IBM SPSS Statistics 26。 基础数据 一组数据&#xff0c;如&#xff1a;73 76 78 77 …

css 左右滚轮无缝衔接

最近的项目有做到一个功能 类似跑马灯或者公告栏那种 有文字 也有列表的 所以 写了两种 第一种公告栏文字是用的js 第二种图文类型是用的css 两种方法 记录一下 第一种 纯文字滚动 其实也是根据js去计算dom的宽度 通过js去给css赋值 <div class"div1"><div …