最后更新于
最后更新于
给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。
请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。
nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。
示例 1:
示例 2:
提示:
1 <= nums1.length <= nums2.length <= 1000
0 <= nums1[i], nums2[i] <= 104
nums1和nums2中所有整数 互不相同
nums1 中的所有整数同样出现在 nums2 中
进阶:你可以设计一个时间复杂度为 O(nums1.length + nums2.length) 的解决方案吗?
我们可以先找到nums2中每个元素的下一个更大元素, 方法参考. 由于nums1和nums2中都没有重复元素, 因此可以建立一个哈希表, 记录nums2中每个元素对应的下一个最大元素值. 然后nums1中的每个数字去哈希表中找对应的答案即可.