496. Next Greater Element I

Question:

You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of nums2. Find all the next greater numbers for nums1‘s elements in the corresponding places of nums2.

The Next Greater Number of a number x in nums1 is the first greater number to its right in nums2. If it does not exist, output -1 for this number.

Example 1:

Input: nums1 = [4,1,2], nums2 = [1,3,4,2].
Output: [-1,3,-1]
Explanation:
    For number 4 in the first array, you cannot find the next greater number for it in the second array, so output -1.
    For number 1 in the first array, the next greater number for it in the second array is 3.
    For number 2 in the first array, there is no next greater number for it in the second array, so output -1.

Example 2:

Input: nums1 = [2,4], nums2 = [1,2,3,4].
Output: [3,-1]
Explanation:
    For number 2 in the first array, the next greater number for it in the second array is 3.
    For number 4 in the first array, there is no next greater number for it in the second array, so output -1.

Note:

  1. All elements in nums1 and nums2 are unique.
  2. The length of both nums1 and nums2 would not exceed 1000.

Solution:

class Solution {
public:
    vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) {
        vector<int> result;
        stack<int> s;
        map<int, int> m;
        for (int i = nums.size() - 1; i >= 0; i--) {
            while (!s.empty() && s.top() <= nums[i])
                s.pop();
            m[nums[i]] = s.empty() ? -1 : s.top();
            s.push(nums[i]);
        }
        for (int i = 0; i < findNums.size(); i++)
            result.push_back(m[findNums[i]]);
        return result;
    }
};

题目直达:https://leetcode.com/problems/next-greater-element-i/#/description

答案直达:http://www.liuchuo.net/archives/3197

时间: 2024-10-05 21:47:32

496. Next Greater Element I的相关文章

496. Next Greater Element I 另一个数组中对应的更大元素

[抄题]: You are given two arrays (without duplicates) nums1 and nums2 where nums1's elements are subset of nums2. Find all the next greater numbers for nums1's elements in the corresponding places of nums2. The Next Greater Number of a number x in nums

【leetcode】496. Next Greater Element I

要求:给出两个数组(没有重复的)nums1和nums2,其中nums1的元素是nums2的子集. 查找nums2的相应位置中nums1元素的所有下一个更大的数字. nums1中的下一个大数字x的数字是num2中右边的第一个较大的数字. 如果不存在,则输出-1表示该数字. Example 1: Input: nums1 = [4,1,2], nums2 = [1,3,4,2]. Output: [-1,3,-1] 代码很臃肿但是执行效率还是不错的.... 1 public class Soluti

LeetCode &quot;496. Next Greater Element I&quot; !

Play it in your mind.. or it may be hard to reach to this intuitive solution... class Solution(object): def nextGreaterElement(self, findNums, nums): hm = {} stk = [] for n in nums: while len(stk)>0 and stk[-1] < n: hm[stk[-1]] = n stk.pop() stk.app

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

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 Ele

leetcode496 - Next Greater Element I - easy &amp;&amp; leetcode503 - Next Greater Element II - medium

496. Next Greater Element IYou are given two arrays (without duplicates) nums1 and nums2 where nums1's elements are subset of nums2. Find all the next greater numbers for nums1's elements in the corresponding places of nums2.The Next Greater Number o

LeetCode_496. Next Greater Element I

496. Next Greater Element I Easy You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of nums2. Find all the next greater numbers for nums1's elements in the corresponding places of nums2. The Next Greater N

LeetCode 556. 下一个更大元素 III(Next Greater Element III)

556. 下一个更大元素 III 556. Next Greater Element III 题目描述 给定一个 32 位正整数 n,你需要找到最小的 32 位整数,其与 n 中存在的位数完全相同,并且其值大于 n.如果不存在这样的 32 位整数,则返回-1. LeetCode556. Next Greater Element III中等 示例 1: 输入: 12 输出: 21 示例 2: 输入: 21 输出: -1 示例 3: 输入: 12443322 输出: 13222344 Java 实现

数组和矩阵(3)——Next Greater Element I

https://leetcode.com/problems/next-greater-element-i/#/description You are given two arrays (without duplicates) nums1 and nums2 where nums1's elements are subset of nums2. Find all the next greater numbers for nums1's elements in the corresponding p

[leetcode] Next Greater Element

今天处理一下一系列题目:Next Greater Element系列. Next Greater Element I You are given two arrays (without duplicates) nums1 and nums2 where nums1's elements are subset of nums2. Find all the next greater numbers for nums1's elements in the corresponding places of