使用单调栈,可以找到一个元素右边第一个比该元素大或者小的元素

vector<int> dailyTemperatures(vector<int>& T) {if(T.empty()) return vector<int>();int size=T.size();T.push_back(101);//在最后面压入一个最大值,以使得所有元素都可以出栈vector<int> res(size);stack<int> stk;for(int i=0;i<size+1;++i){while(!stk.empty() && T[i]>T[stk.top()]){if(i==size) //对于我们手动加入的元素要特殊处理res[i]==0;else{int top=stk.top();res[top]=i-top;}stk.pop();}stk.push(i);}return res;
}

但是这里有一个巧合,在没有添加101的前提下,如果一个元素没有出栈,就说明在它右边没有比它大的元素,也就是置为0,而数组的初始值正好为0,因此可以略微简化为

vector<int> dailyTemperatures(vector<int>& T) {if(T.empty()) return vector<int>();int size=T.size();vector<int> res(size);stack<int> stk;for(int i=0;i<size;++i){while(!stk.empty() && T[i]>T[stk.top()]){int top=stk.top();res[top]=i-top;stk.pop();}stk.push(i);}return res;
}

739. 每日温度/C++相关推荐

  1. 739. 每日温度 golang

    739. 每日温度 根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高,请在该位置用 0 来代替. 例如,给定一个列表 temper ...

  2. 739. 每日温度 golang (list实现)

    739. 每日温度 根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高,请在该位置用 0 来代替. 例如,给定一个列表 temper ...

  3. 【LeetCode】【HOT】739. 每日温度(栈)

    [LeetCode][HOT]739. 每日温度 文章目录 [LeetCode][HOT]739. 每日温度 package hot;import java.util.ArrayDeque; impo ...

  4. leetcode 栈739. 每日温度

    739. 每日温度 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高的天数.如果之后都不会升高,请输入 0 来代替.例如,给定一个列表 temperatures ...

  5. 184、【栈与队列】leetcode ——739. 每日温度(C++版本)

    题目描述 参考文章:739. 每日温度 解题思路 (1)暴力法 每次遍历到一个数时,就再开辟一个变量找此数后面第一个大于它的数,找到则添加,没找到则返回0. class Solution {publi ...

  6. 力扣739. 每日温度

    739. 每日温度 - 力扣(LeetCode) (leetcode-cn.com) 暴力 class Solution {public int[] dailyTemperatures(int[] t ...

  7. 2020-06-11 LeetCode 739 每日温度 C++

    题目:739. 每日温度  根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高,请在该位置用 0 来代替.  例如,给定一个列表 t ...

  8. leetcode 739. 每日温度 单调栈解法和暴力法及其优化 c代码

    如题: 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高, 请在该位置用 0 来代替.例如,给定一个列表 temperature ...

  9. Leetcode 739. 每日温度 (每日一题 20211014)

    请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度.如果气温在这之后都不会升高,请在该位置用 0 来代替.示例 1:输入: temperatures = [7 ...

  10. LeetCode 739. 每日温度(单调栈)

    1. 题目 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高,请在该位置用 0 来代替. 例如,给定一个列表 temperatu ...

最新文章

  1. 何凯明团队又出新论文!联合北大、上交用ViT做迁移学习,效果惊人!
  2. Oracle树查询总结
  3. 明星不是梦#利用Python进行网站日志分析
  4. php多主写数据,多数据库的配置(从主)
  5. 修正mysqlcc在MySQL 5.0上常报的 Table 'xxx' doesn't exist 错误
  6. [原]详解如何将cocos2dx项目编译到Android平台上的(方式一:Cywin+NDK)
  7. 安卓应用安全指南 4.4.1 创建/使用服务 示例代码
  8. ArcGis api配合vue开发入门系列(二)距离以及面积的测量
  9. vue 第四天 (计算属性的使用)
  10. C#保存图片到数据库,读取图片显示
  11. 单机游戏合集!12000G!淘宝购!
  12. ds18b20 c语言代码,读DS18B20序列号(c语言)
  13. PHP编程中 @符号的作用
  14. 2.16VINETIC需要解决的问题
  15. 在linux环境中安装jieba模块
  16. 史上最欠揍的28条短信
  17. 用c语言输出中文字符串,C++输出中文字符串
  18. 19 | Rancher 使用介绍(管理 K8s 平台)
  19. 如何赚取units_保护自己或从数据隐私中赚取大量金钱
  20. Coursera视频打不开终极办法

热门文章

  1. idea remote debug
  2. IEEE Transactions on Industrial Informatics(TII)投稿指导
  3. 全球与中国SS-OCT激光市场深度研究分析报告
  4. 小型微型计算机系统杂志好投么,小型微型计算机系统杂志
  5. 帆软报表扩展列计算同比环比
  6. OpenGL(十七)——Qt OpenGL在三维空间移动位图(会动的星星)
  7. 2022年考研华中科技大学计算机学院硕士后记
  8. 风潮唱片总目录及下载地址-2009年2月9日更新
  9. 安卓开发之Intent使用介绍(显式Intent和隐式Intent)
  10. 笔记44-JQuery高级笔记