temperatures
,重新生成一个列表,要求其对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。
0
来代替。class Solution
{
public:
vector<int> dailyTemperatures(vector<int>& temperatures)
{
stack<int> stk;
vector<int> ans(temperatures.size());
for(int i = 0; i < temperatures.size(); ++i)
{
while(!stk.empty() and temperatures[i] > temperatures[stk.top()])
{
ans[stk.top()] = i - stk.top();
stk.pop();
}
stk.push(i);
}
return ans;
}
};
class Solution
{
public:
vector<int> dailyTemperatures(vector<int>& temperatures)
{
int m = temperatures.size();
vector<int> ans(m);
stack<int> stk;
for(int i = m-1; i >= 0; --i)
{
while(!stk.empty() and temperatures[i] >= temperatures[stk.top()])
stk.pop();
ans[i] = stk.empty() ? 0 : stk.top()-i;
stk.push(i);
}
return ans;
}
};