请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。
示例一 输入: temperatures = [73,74,75,71,69,72,76,73] 输出: [1,1,4,2,1,1,0,0] 示例二 输入: temperatures = [30,40,50,60] 输出: [1,1,1,0] 示例三 输入: temperatures = [30,60,90] 输出: [1,1,0]
class Solution { public int[] dailyTemperatures(int[] temperatures) { int len = temperatures.length; int next[] = new int[len]; Stack<Integer> stk = new Stack<Integer>(); for (int i=0; i<len; i++){ while(!stk.empty() && temperatures[i]>temperatures[stk.peek()]){ int idx = stk.pop(); next[idx] = i-idx; } stk.push(i); } return next; } }