739. 每日温度

package leetcode;

import java.util.Stack;

public class demo_739 {
    public int[] dailyTemperatures(int[] temperatures) {
        int[] answer=new int[temperatures.length];
        //单调栈,从栈底到栈顶递减,存放的是元素在数组中的位置
        Stack<Integer> stack=new Stack<Integer>();
        for(int i=0;i<temperatures.length;i++) {
            //如果栈顶对应的值小于当前的值,说明当前值即为在栈顶元素之后第一个比它的值
            while(!stack.isEmpty()&&temperatures[stack.peek()]<temperatures[i]) {
                //在answer中存储值
                answer[stack.peek()]=i-stack.peek();
                stack.pop();
            }
            stack.add(i);
        }
        for (int integer : answer) {
            System.out.println(integer);
        }
        return answer;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        demo_739 demo=new demo_739();
        int[] temperatures= {73,74,75,71,69,72,76,73};
        demo.dailyTemperatures(temperatures);
    }

}

 

posted on 2022-04-13 11:00  一仟零一夜丶  阅读(28)  评论(0)    收藏  举报