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; } }