leetcode-739:每日温度

  • 题目
  • 解题
    • 方法一:暴力(超时)
    • 方法二: 单调栈

题目

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

输入: temperatures = [73,74,75,71,69,72,76,73]
输出: [1,1,4,2,1,1,0,0]

示例 2:

输入: temperatures = [30,40,50,60]
输出: [1,1,1,0]

示例 3:

输入: temperatures = [30,60,90]
输出: [1,1,0]

解题

方法一:暴力(超时)

class Solution {public:vector<int> dailyTemperatures(vector<int>& temperatures) {vector<int> res;for(int i=0;i<temperatures.size();i++){for(int j=i;j<temperatures.size();j++){if(temperatures[j]>temperatures[i]){res.push_back(j-i);break;}if(j==temperatures.size()-1){res.push_back(0);}}}return res;}
};

方法二: 单调栈

参考链接1
参考链接2
通过一个单调栈,左边是栈底,右边是栈顶,从左到右是递减的。
栈里存放的是索引,因为我们结果需要用到索引作差。

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

leetcode-739:每日温度相关推荐

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

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

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

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

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

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

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

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

  5. leetcode - 739. 每日温度

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

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

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

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

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

  8. leetcode 栈739. 每日温度

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

  9. 力扣739. 每日温度

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

  10. 739. 每日温度 golang

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

最新文章

  1. Go语言基础语法--注释、基础结构2
  2. name选择器_这33个超级好用的CSS选择器,你可能见都没见过
  3. 给SAP系统安装联机帮助(事务码SR13)
  4. python在财务上的应用-利用python实现周期财务统计可视化
  5. 030_html脚本
  6. submit按钮html,html的两种提交按钮submit和button
  7. caffe 加入 cudnn编译
  8. Windows Server 笔记之网络负载平衡(NLB)和服务质量(QoS)简介
  9. liferay 在css 中,引入图片的写法
  10. 最右显示请求服务器不存在,修改合流任务_实时音视频 RTC_服务端API参考_合流任务管理_华为云...
  11. c语言密码锁程序,急求C语言电子密码锁程序
  12. Webrtc 开源代码的简单介绍
  13. 拓端tecdat|R语言使用ARIMAX预测失业率经济时间序列数据
  14. 【优化算法】麻雀搜索优化算法(SSA)【含Matlab源码 1288期】
  15. 跟着海盗头子创业是一种怎样的体验?
  16. 软件需求分析----实验室设备管理系统
  17. 用python制作动态二维码
  18. 第五届上海市大学生网络安全大赛
  19. spaCy 2.1 中文NLP模型
  20. 最适合0基础入门的5种编程语言

热门文章

  1. 联想电脑u盘安装Linux,如何使用u盘安装linux系统
  2. 破解庞加莱猜想--中国人干的!
  3. java实现登录注册界面
  4. 网页或大屏展示的倒计时器
  5. 华为云ECS服务器中通过docker部署sentinel-dashboard
  6. begin tran,commit tran和rollback tran的用法
  7. 《Objective-C 程序设计(第4版)》图书信息(二)
  8. word 计算机内存不足,电脑office打不开显示内存不足怎么办
  9. python处理淘宝助理csv_淘宝助理上传CSV文件
  10. linux樱桃树软件名字,春天开花的树及名称