leetcode739——Daily Temperatures

题目大意:给出每日气温数组,求出每天之后等待几天,气温会升高

分析:栈——求下一个更大元素。用栈记录遍历的索引,遍历时只要当前元素大于栈顶索引所指气温值,说明栈顶元素的答案找到了,记录答案并弹栈,循环直到栈顶索引所指气温值不小于当前遍历气温,然后压入当前索引即可。

代码:

class Solution {
public:
    vector dailyTemperatures(vector& T) {
        vector ans(T.size());
        stack s;
        for(int i = 0;i < T.size();i++){
            while(!s.empty() && T[s.top()] < T[i]){
                ans[s.top()] = i - s.top();
                s.pop();
            }
            s.push(i);
        }
        return ans;
    }
};

 

你可能感兴趣的:(数据结构-栈)