
LeetCode No496.下一个更大元素 I
发布日期:2021-05-07 23:15:36
浏览次数:20
分类:原创文章
本文共 882 字,大约阅读时间需要 2 分钟。
题目描述
解法:单调栈
class Solution { public int[] nextGreaterElement(int[] nums1, int[] nums2) { int[] res = new int[nums1.length]; //需要返回的结果数组 Arrays.fill(res,-1); //默认填充-1 HashMap<Integer,Integer> map = new HashMap<>(); //nums1中的值的对应下标 for (int i = 0; i < nums1.length; i++) { map.put(nums1[i],i); } Stack<Integer> stack = new Stack<>(); //单调栈 for (int num : nums2) { while(!stack.isEmpty() && stack.peek() < num){ int pop = stack.pop(); //要移除的值 //判断这个值是不是在nums1中 Integer i = map.get(pop); if(i != null){ //不为空,表示在map的key中,也就说明在nums1中 //更新res数组 res[i] = num; // 比pop大的元素就是这个当前访问的num } } stack.push(num); } return res; }}
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月05日 05时38分47秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Python刷题输入输出
2021-05-08
冒泡排序又来啦(C/C++版本)
2021-05-08
python负数存储
2021-05-08
求二维数组中最大值的位置
2021-05-08
python中sort和sorted的区别
2021-05-08
maven安装
2021-05-08
合并两个有序数组
2021-05-08
Ubuntu 环境下使用中文输入法
2021-05-08
聊聊我的五一小假期
2021-05-08
面向对象之异常处理:多路捕获
2021-05-08
Python简易五子棋
2021-05-08
Vue新建项目——页面初始化
2021-05-08
Cent OS 7.6 服务器软件安装(这篇博客主要是为了方便我配置云主机的)
2021-05-08
Node.js包使用系列(一)——修改NPM全局下载和缓存路径
2021-05-08
TDengine使用(一)——TDengine下载与安装
2021-05-08
6.14编一个程序,将两个字符串s1和s2比较,不要用strcmp函数。
2021-05-08
Java纯文本文件显示工具制作
2021-05-08
Unity2D Fixed Joint 2D详解
2021-05-08
六、Numpy的使用(详解)
2021-05-08