leetcode739. 每日温度
一:题目
二:上码
// class Solution {// public:
// vector<int> dailyTemperatures(vector<int>& temperatures) {// vector<int> ans(temperatures.size(),0);// for (int i = 0; i < temperatures.size(); i++) {// int count = 1;
// int flag = 0;// for (int j = i+1; j <temperatures.size(); j++) {// if (temperatures[j] > temperatures[i]) {// flag = 1;
// break;
// } else {// count++;
// }
// }
// if(flag == 1) ans[i] = count;
// else ans[i] = 0;
// }
// return ans;
// }
// };class Solution {public:/**思路:1.本题用到单调栈,那么我们来分析一下单调栈;2.何时用到单调栈当我们要求左边还是右边第一个比其大或者小的元素的位置的时候3.怎么用?1>:栈当中存的元素存的是元素的下标2>:确定何种单调我们从栈顶到栈底的顺序来确定单调性那么本题来说的话 我们是要求出右边第一个比起大的元素位置 那么我们就需要是 单调递增的 当出现元素比其栈顶元素的大的时候 我们就要弹出栈顶元素这时候我们就可以记录了 右边第一个比其大的元素了。 ans[st.top()] = i - st.top();//因为我们是要求的是右边第一个比其大的元素距其相差几个位置*/vector<int> dailyTemperatures(vector<int>& temperatures) {if(temperatures.size() == 0) return {0};stack<int> st;vector<int> ans(temperatures.size(),0);st.push(0);for (int i = 1; i < temperatures.size(); i++) {while (!st.empty() && temperatures[i] > temperatures[st.top()]) {//大于栈顶元素的话 //那么就需要弹出了ans[st.top()] = i - st.top();//这时就可以记录我们比栈顶元素大的话 其是相差多少个st.pop();} st.push(i); }return ans;}
};
leetcode739. 每日温度相关推荐
- leetcode.84 leetcode739. 每日温度(都是单调栈)
学习不息,转载不止. 后面有自己写的题解.别忘了. 单调栈学习建议以及练习(15:54 开始):「力扣」第 42.739.496.316.901.402.581 题. 这是一个非常典型的利用单调栈来解 ...
- leetcode739 每日温度
根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高,请在该位置用 0 来代替. 例如,给定一个列表 temperatures = ...
- 力扣【每日温度】leetcode-739.每日温度:单调栈解法
题目描述: 通俗一点就是,从当前开始,往后看,看到升温的那一天目前需要等多久~ 思路: 单调栈解法:参考下一个更大元素leetcode 503题的思路以及解法 不同之处在于,题目要求返回的不是原来数组 ...
- 20200331:每日温度(leetcode739)
每日温度 题目 思路与算法 代码实现 复杂度分析 题目 思路与算法 思路一:暴力法,本题首先最直观的想法就是,我们在新建结果数组,然后为了填每个位置的值,每次都去遍历一遍数组找到第一个比当前值大的数, ...
- python 每日温度
| 每日温度 请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度.如果气温在这之后都不会升高,请在该位置用 0 来代替.示例 1:输入: temperatur ...
- 739. 每日温度 golang
739. 每日温度 根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高,请在该位置用 0 来代替. 例如,给定一个列表 temper ...
- 739. 每日温度 golang (list实现)
739. 每日温度 根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高,请在该位置用 0 来代替. 例如,给定一个列表 temper ...
- 【LeetCode】【HOT】739. 每日温度(栈)
[LeetCode][HOT]739. 每日温度 文章目录 [LeetCode][HOT]739. 每日温度 package hot;import java.util.ArrayDeque; impo ...
- leetcode 栈739. 每日温度
739. 每日温度 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高的天数.如果之后都不会升高,请输入 0 来代替.例如,给定一个列表 temperatures ...
最新文章
- iOS 应用程序的启动流程及其代理
- 关于授予81项成果2019年度“吴文俊人工智能科学技术奖”的决定
- 初等数论--整除--公倍数一定是最小公倍数的倍数
- asp.net core web mvc之异常
- Spring配置错误java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/TransactionAwareDataS
- 关于移动端页面强制竖屏
- python3编程入门先学什么_自学编程入门,先学什么语言好?
- java的equals方法_Java Duration类| 带示例的equals()方法
- 洛谷——P1680 奇怪的分组
- jquery停止动画排队stop
- npm install 报错operation not permitted, unlink
- 【程序人生】从外包到大厂,你知道我这一个月是怎么过的吗?
- Mac 外接显示器色彩不正常解决方案
- dell12v18a怎么改_拆修DELL 12V 18A电源!
- C++多线程--std::packaged_task
- 使用FreeMarker导出固定格式word文档
- Es6类数组length属性和扩展方法,find(),findIndex(),fill(),copyWithin(),entries()...用法
- 移动端 input 调用手机键盘搜索功能
- layUi upload单文件上传,重复上传的问题
- 咕泡java架构师二期网盘_咕泡学院java架构师VIP3期
热门文章
- JFlow CCFlow工作流引擎北京培训邀请函
- powershell 脚本运行策略,参数....
- Andorid与webView交互,获取webView选中文字,兼容了iframe
- C#子窗体运行时无法正常最大化的解决办法
- C++编译之提示ld: can‘t open output file for writing: test1, errno=21 for architecture x86_64
- linux之文件类型
- linux命令 su和sudo,Linux中sudo和su的区别
- 理工男都能有多痴情?
- 谈谈女友卸妆后的感受?
- 22岁少年破解史上最严重网络攻击,拯救全球互联网,三个月后却被FBI逮捕