496. 下一个更大元素 I

给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。

nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出-1。

示例 1:

输入: nums1 = [4,1,2], nums2 = [1,3,4,2].
输出: [-1,3,-1]
解释:
对于num1中的数字4,你无法在第二个数组中找到下一个更大的数字,因此输出 -1。
对于num1中的数字1,第二个数组中数字1右边的下一个较大数字是 3。
对于num1中的数字2,第二个数组中没有下一个更大的数字,因此输出 -1。
示例 2:

输入: nums1 = [2,4], nums2 = [1,2,3,4].
输出: [3,-1]
解释:
对于num1中的数字2,第二个数组中的下一个较大数字是3。
对于num1中的数字4,第二个数组中没有下一个更大的数字,因此输出 -1。
注意:

nums1和nums2中所有元素是唯一的。
nums1和nums2 的数组大小都不超过1000。

PS:
栈记录前面的,map存放数

class Solution {public int[] nextGreaterElement(int[] nums1, int[] nums2) {Stack<Integer> stack = new Stack<Integer>();HashMap<Integer, Integer> hasMap = new HashMap<Integer, Integer>();int[] result = new int[nums1.length];for(int num : nums2) {while(!stack.isEmpty() && stack.peek()<num){hasMap.put(stack.pop(), num);}stack.push(num);}for(int i = 0; i < nums1.length; i++) result[i] = hasMap.getOrDefault(nums1[i], -1);return result;}
}

Java实现 LeetCode 496 下一个更大元素 I相关推荐

  1. LeetCode 496. 下一个更大元素 I

    599. 两个列表的最小索引总和 添加链接描述 假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示. 你需要帮助他们用最少的索引和 ...

  2. leetcode 496. 下一个更大元素 I(Java版,单调栈解法)

    题目 https://leetcode-cn.com/problems/next-greater-element-i/ 题解 通过Stack.HashMap解决,经典的单调栈问题 先遍历大数组nums ...

  3. LeetCode 496. 下一个更大元素 I(哈希)

    1. 题目 给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集.找到 nums1 中每个元素在 nums2 中的下一个比其大的值. nums1 中数字 x ...

  4. LeetCode 496. 下一个更大元素 I 解题思路及C++实现

    解题思路: 因为这两个int型的vector中不包含重复元素,所以考虑使用c++中的unordered_map,对num2进行遍历,找到每一个元素的下一个更大元素,这样的话,时间复杂度就是O(n). ...

  5. Java实现 LeetCode 503 下一个更大元素 II

    503. 下一个更大元素 II 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素.数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大 ...

  6. Java实现 LeetCode 556 下一个更大元素 III(数组的翻转)

    556. 下一个更大元素 III 给定一个32位正整数 n,你需要找到最小的32位整数,其与 n 中存在的位数完全相同,并且其值大于n.如果不存在这样的32位整数,则返回-1. 示例 1: 输入: 1 ...

  7. 496. 下一个更大元素 I

    496. 下一个更大元素 I 题目 分析 我的解答 官方解答 题目 给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集.找到 nums1 中每个元素在 ...

  8. 【LeetCode】496. 下一个更大元素 I 【单调栈】

    题目链接:https://leetcode-cn.com/problems/next-greater-element-i/ 题目描述 给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中 ...

  9. 496.下一个更大元素I

    给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集.找到 nums1 中每个元素在 nums2 中的下一个比其大的值. nums1 中数字 x 的下一个更 ...

最新文章

  1. android gridview item添加checkbox,手把手教你实现GridView中Checkbox全选
  2. Bootstrap(自助法),Bagging,Boosting(提升)
  3. SAP ABAP实用技巧介绍系列之 ABAP XSLT match keyword
  4. leetcode 205. 同构字符串(hash)
  5. php功能大马加密乱码,php大马加密工具 phpTrace:奇虎360开源的PHP脚”的相关知识...
  6. 如何实现共享软件网络授权认证,包括注册新用户、登录、修改密码等操作
  7. 小细节决定大人生 或 对于细节的在意程度决定你人生到达的高度 或 对于细节的把控决定你是否比水平大致相同的人优秀与否 + 做事要带点脑子
  8. ctfshow-WEB-web5
  9. ASP.net控件开发系列之(一、二)
  10. 春运能不能抢到票就看他了!开源的Python抢票神器
  11. span标签显示、隐藏、取值、赋值
  12. android 使用4大组件的源码,Android Jetpack架构组件之 Paging(使用、源码篇)
  13. Anroid性能优化系列——Improving Layout Performance(二)
  14. 【PAT】A-1034 :Head of a Gang(图的DFS遍历和map的巧妙使用---图的入门题目)
  15. IPlImage的width和widthStep
  16. 计算机电源管理器怎么用,怎样使用联想电源管理软件?使用方法介绍
  17. php解析dcm,DICOM入门(三)——解析DCM文件
  18. xcode6更新证书错误:No matching provisioning profiles found 解决方案
  19. 无线攻击入侵工具清单
  20. 【pandas】--DataFrame数据筛选(二)

热门文章

  1. MySQL进阶篇:深入理解启动项、系统变量、字符集
  2. bbr29_Linux Kernel 4.9 中的 BBR 算法与之前的 TCP 拥塞控制相比有什么优势?
  3. java制作电话本,java模拟而一个电话本操作
  4. 利用selenium爬取携程旅游网的景区评论
  5. java 生成图片验证码
  6. 电脑tdr太低是什么意思_“虚拟内存太低”是什么意思?这对电脑有什么坏处?该怎么办呢?...
  7. 调用摄像头并获取图像_获得对摄像头的访问权
  8. 分享一些摘抄的优美句子~
  9. creo 计算机配置,config配置文件乱码,creo配置文件config
  10. 【Linux】循序渐进学运维-服务篇-rysnc安装及使用