[leetcode 496. 下一个更大元素 I] 单调栈

单调栈的写法:

 

 

复制代码
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.HashMap;
import java.util.Map;

class Solution {
    public int[] nextGreaterElement(int[] nums1, int[] nums2) {
        int len = nums1.length;
        int[] ans = new int[len];
        Map<Integer,Integer> map = new HashMap<>();
        Deque<Integer> stack = new ArrayDeque<>();
        for (int i = nums2.length-1; i >=0 ; i--) {
            int num = nums2[i];


            while(!stack.isEmpty() && stack.peek() <= num){
                stack.pop();
            }
            if(stack.isEmpty()){
                map.put(num,-1);
            }else{
                map.put(num,stack.peek());
            }

            stack.push(num);
        }
        for (int i = 0; i < nums1.length; i++) {
            ans[i] = map.get(nums1[i]);
        }
        return ans;
    }
}
复制代码

 

本文作者:love

本文链接:https://www.cnblogs.com/fishcanfly/p/16301918.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   fishcanfly  阅读(20)  评论(0编辑  收藏  举报
//雪花飘落效果
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起