Coding 【每日一题】下一个更大的数 -Python-20211003

Jack · 2021年10月03日 · 最后由 Jack 回复于 2021年10月04日 · 9 次阅读
本帖已被设为精华帖!
  1. 问题描述: 两个不重复的数组,nums1 和 nums2,其中 nums1 是 nums2 的子集。在 nums2 的相应位置找到 nums 所有元素的下一个更大的数字。若不存在,则输出-1 nums1 和 nums2 中所有数字都是唯一的,且长度不超过 1000
  2. 问题示例: 输入: nums1 = [4, 1, 2] nums2 = [1, 3, 4, 2] 输出: [-1, 3, -1] 注: 对于 nums1 中的 4,在 nums2 中没有找到更大的数字,所以返回-1;其余数字一次类推
Jack 将本帖设为了精华贴 10月03日 16:56

参考代码:

class Solution:
    def nextGreaterElement(self, nums1, nums2):
        answer = {}
        stack = []
        for x in nums2:
            while stack and stack[-1] < x:
                answer[stack[-1]] = x
                del stack[-1]
            stack.append(x)
        for x in stack:
            answer[x] = -1
        return [answer[x] for x in nums1]
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册