import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 每日温度
* @param dailyTemperatures int整型一维数组
* @return int整型一维数组
*/
public int[] temperatures (int[] dailyTemperatures) {
ArrayDeque<Integer> st = new ArrayDeque<>();
int[] res = new int[dailyTemperatures.length];
for(int i = dailyTemperatures.length-1; i >= 0; i--){
//如果当前元素大于栈内元素,将它们出栈
while(!st.isEmpty() && dailyTemperatures[st.peek()] <= dailyTemperatures[i])
st.pop();
//如果当前元素小于栈内元素,则记录栈顶元素作为结果
if(!st.isEmpty() && dailyTemperatures[st.peek()] > dailyTemperatures[i])
res[i] = st.peek() - i;
//如果栈空,则说明没有更大的元素
if(st.isEmpty())
res[i] = 0;
st.push(i);
}
return res;
}
}