496. 下一个更大元素 I
496. Next Greater Element I

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

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

每日一算法2019/6/7Day 35LeetCode496. Next Greater Element I

示例 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。

注意:

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

Java 实现

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

相似题目

  • 503. 下一个更大元素 II Next Greater Element II
  • 556. 下一个更大元素 III Next Greater Element III
  • 739. 每日温度 Daily Temperatures

参考资料

  • https://leetcode.com/problems/next-greater-element-i/https://leetcode.com/problems/next-greater-element-i/
  • https://leetcode-cn.com/problems/next-greater-element-i/

转载于:https://www.cnblogs.com/hglibin/p/10987847.html

LeetCode 496. 下一个更大元素 I(Next Greater Element I) 35相关推荐

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

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

  2. Java实现 LeetCode 496 下一个更大元素 I

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

  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. leetcode 496. 下一个更大元素 I(Java版,单调栈解法)

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

  6. [Swift]LeetCode496. 下一个更大元素 I | Next Greater Element I

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  7. [Swift]LeetCode556. 下一个更大元素 III | Next Greater Element III

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

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

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

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

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

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

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

最新文章

  1. 服务器Linux与Windows固件,Linux与windows服务器系统的区别
  2. ps作业素材和成品_没有用过PS的画框工具,你还敢说你是设计大佬?
  3. 网页中Flash播放器常用参数设置(转)
  4. [Windows核心编程]堆
  5. PS把一张白纸里的黑色图形抠出来
  6. android 下载网络图片并缓存
  7. 1小时学会jQuery,全程无废话,直接上代码
  8. iOS 审核被拒绝问题汇总
  9. 最最简单的几个Mac终端命令
  10. 感性电路电流计算_220和380V功率和电流计算知识。
  11. talfta---动态故障树分析软件产品介绍
  12. 485的信号测试软件,RS485通信测试项目中的压力测试方法、原理及基本测试模型...
  13. 阿里云 mysql 创建数据库 账户密码 外网连接等
  14. 思科CISCO交换机端口升级方案
  15. Rinne Loves Study
  16. oracle cve 漏洞,CVE安全漏洞的理解
  17. windows10添加键盘_如何在Windows中免费添加键盘并用您的语言书写
  18. 2021-09-10 网安实验-XCTF真题实战之密码学
  19. Spring系列学习之Spring Cloud Contract测试消息传递
  20. CentOS 7 使用外部邮箱 发送邮件和附件—mail,mailx

热门文章

  1. JVM-绘图展现字节码执行引擎执行过程
  2. 虚拟机克隆后修改网络部分
  3. asp.net 页面转向 Response.Redirect, Server.Transfer, Server.Execute的区别
  4. linux虚拟机cpu一分钟内负载,虚拟机性能调优-CPU篇
  5. 华中师范大学计算机学院郑,郑年亨-华中师范国家数字化研究中心
  6. 关于margin的数值是百分比,参照对象
  7. git单独删除某个文件的所有历史记录
  8. 计算机网络培养方案,计算机网络技术专业培养方案
  9. 阅读分布式锁文章总结
  10. arm linux 识别新硬盘_想玩树莓派却不会Linux?能装Windows的树莓派来了