【第三周】每日温度

LeetCode 739. 每日温度

class Solution {
    public int[] dailyTemperatures(int[] T) {
        // int[] results = new int[T.length];
        // for (int i = 0; i < T.length; i++) {
        //     int wait = 0;
        //     for (int j = i + 1; j < T.length; j++) {
        //         if (T[j] > T[i]) {
        //             wait = j - i;
        //             break;
        //         }
        //     }
        //     results[i] = wait;
        // }
        // return results;

        // 单调栈
        int[] results = new int[T.length];
        Deque<Integer> stack = new LinkedList<Integer>();
        for (int i = 0; i < T.length; i++) {
            while (!stack.isEmpty() && T[i] > T[stack.peek()]) {
                int pre = stack.pop();
                results[pre] = i - pre;
            }
            stack.push(i);
        }
        return results;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容