简介

如果用暴力岂不是太不优雅了. 有些问题可以使用单调栈来进行计算.

简单思想

构建一个栈, 栈是一个有顺序的, 里面有一个while循环,然后 如果满足一定的条件, 将会一直弹出.

code

class Solution {
public:
vector<int> dailyTemperatures(vector<int>& T) {
stack<int> s;
vector<int> res(T.size(), 0);
int len = T.size();
for(int i=0; i<len; i++){
while(!s.empty() && T[s.top()] < T[i]){
res[s.top()] = i - s.top();
s.pop();
}
s.push(i);
}
return res;
}
};
class Solution {
public int[] dailyTemperatures(int[] T) {
Deque<Integer> stack = new ArrayDeque<>(); int [] res = new int[T.length];
for(int i = 0; i<T.length; i++){
while(!stack.isEmpty() && T[stack.peek()] < T[i]){
int idx = stack.pop();
res[idx] = i - idx;
}
stack.push(i);
}
return res;
}
}

739 每日温度 && 单调栈算法的思路的更多相关文章

  1. [LeetCode]739. 每日温度(单调栈)

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

  2. Java实现 LeetCode 739 每日温度(暴力循环)

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

  3. LeetCode——739. 每日温度

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

  4. LeetCode 739 每日温度

    1.直接遍历 暴力求解 class Solution { public: vector<int>dailyTemperatures(vector<int>& T) { ...

  5. LeetCode:每日温度【739】

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

  6. LeetCoded第739题题解--每日温度

    每日温度 请根据每日 气温 列表,重新生成一个列表.对应位置的输出为:要想观测到更高的气温,至少需要等待的天数.如果气温在这之后都不会升高,请在该位置用 0 来代替. 例如,给定一个列表 temper ...

  7. 每日温度(LeetCode Medium难度算法题)题解

    LeetCode 题号739中等难度 每日温度 题目描述: 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高,请在该位置用 0 ...

  8. LeetCode739 每日温度

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

  9. LeetCode 739:每日温度 Daily Temperatures

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

  10. LeetCode 739. Daily Temperatures (每日温度)

    题目标签:HashMap 题目给了我们一组温度,让我们找出 对于每一天,要等多少天,气温会变暖.返回一组等待的天数. 可以从最后一天的温度遍历起,从末端遍历到开头,对于每一天的温度,把它在T里面的in ...

随机推荐

  1. Model接口

    /** * Model接口 * 作用:将值存放到request对象 * * * @return */ @RequestMapping(value = "/testModle") p ...

  2. 深度讲解-APP安全评估报告(APP上架必备)

    随着<具有舆论属性或社会动员能力的互联网信息服务安全评估规定>(以下简称<评估规定>)的发布,互联网信息服务提供者在开展具有舆论属性或社会动员能力的App服务时,必须遵循相应的 ...

  3. web自动化:webelement常用api

    一.常用基本操作 1. Click 触发当前元素的点击事件 webelement.click(); 2.Sendkeys 往当前元素输入内容 webelement.sendkeys("con ...

  4. 在 .NET 中的 ConvertAll 和 Select 方法哪个性能好

    .NET 的 List 中提供了 ConvertAll 和 Select 两个方法,在开发中实际上应该使用哪一个? 接下来通过基准测试脚本来对比性能. 先编写基准测试脚本: [MemoryDiagno ...

  5. js获取本地图片文件的原始宽高尺寸

    <!--      关键api:URL.createObjectURL(object) object:File对象或 Blob 对象     参考:https://developer.mozil ...

  6. VS2019 webApi(.net core2.2版本)上传到Gitee

    一.本地创建项目 创建本地项目,依次点击下一步,在选择"目标框架"时选择2.2, 二.配置swagger 1.添加依赖项 2.修改Startup.cs public void Co ...

  7. 【代码审计】Emlog存在SQL注入+XSS漏洞

    1.源码简介 EMLOG 是一款轻量级开源博客和CMS建站系统,速度快.省资源.易上手,适合各种规模的站点搭建. 2.漏洞描述 EMLOG $keyword参数存在SQL注入漏洞. EMLOG art ...

  8. 漏洞预警 | Apache NiFi信息泄露漏洞

    0x00 漏洞编号 CVE-2024-56512 0x01 危险等级 中危 0x02 漏洞概述 Apache NiFi是一个强大的.易于使用的数据集成平台,旨在自动化和管理数据流,尤其是在大数据环境中 ...

  9. Gin 实现基础 CRUD 接口

    前面2篇讲了关于 gin + mysql + jwt + rbac 等基础 web搭建操作, 主要目的还是学习 go 语言的一些应用工具, 然后本篇继续来实现一个名为 notice 的公告模块, 包含 ...

  10. 进程间通信-POSIX 消息队列

    POSIX 消息队列 POSIX 消息队列可以认为是一个消息链表.进程(线程)可以往里写消息,也可以从里面取出消息.可以在不相关的进程之间发送和接收数据. 创建(打开)消息队列-mq_open()函数 ...