LeetCode:739. 每日温度
单调栈的简单应用
维护一个递减的单调栈即可
遇到比栈顶大的后,就通过下标进行结算。
AC Code
class Solution {
public int[] dailyTemperatures(int[] t) {
int len = t.length;
// 单调栈 -> 存放下标
// 维护一个递减的
Deque<Integer> stack = new ArrayDeque<>();
int[] ans = new int[len];
for(int i = 0; i < len; i++) {
while(!stack.isEmpty() && t[i] > t[stack.peek()]) {
int idx = stack.pop();
ans[idx] = (i - idx);
}
stack.push(i);
}
return ans;
}
}