Leetcode739. 每日温度

 代码:

class Solution {
public:
    vector<int> dailyTemperatures(vector<int>& T) {
         int length = int(T.size());
        vector<int>result(length,0); //需要指定长度
        stack<int>st;
        for (int i = 0;i<length;++i)
        {
            while(!st.empty()&&T[i]>T[st.top()])
            {
                auto t = st.top();st.pop();//要求的当天温度之前的数量  要求的温度在数组中的位置
                result[t] = i-t; //当前的数量为比他大的 间隔
            }
            st.push(i);
        }
        return result;
    }
};

算法复杂度

算法复杂度是 O(n)O(n)

相关题目推荐

利用堆栈,还可以解决如下常见问题:

求解算术表达式的结果(LeetCode 224、227、772、770)
求解直方图里最大的矩形区域(LeetCode 84)

以大多数人努力程度之低,根本轮不到去拼天赋~
原文地址:https://www.cnblogs.com/gcter/p/15338256.html