leetcode - 739. 每日温度
题目
代码
#include
#include
#include
using namespace std;
// 单调栈
vector dailyTemperatures(vector& temperatures) {
int n = temperatures.size();
vector res(n, 0);
stack s;
for(int i = 0; i < n; i++){
while(!s.empty() && temperatures[i] > temperatures[s.top()]){
int index = s.top();
s.pop();
res[index] = i - index;
}
s.push(i);
}
return res;
}
// 超出时间限制
vector dailyTemperatures1(vector& temperatures) {
int n = temperatures.size();
vector res(n, 0);
for(int i = 0; i < n - 1; i++){
for(int j = i + 1; j < n; j++){
if(temperatures[i] < temperatures[j]){
res[i] = j - i;
break;
}
}
}
return res;
}
int main(){
int n;
cin>>n;
vector res;
vector temperatures(n);
for(int i = 0; i < n; i++){
cin>>temperatures[i];
}
res = dailyTemperatures(temperatures);
for(int i = 0; i < res.size(); i++){
cout<