商洛市网站建设_网站建设公司_网站备案_seo优化
2026/1/7 13:09:32 网站建设 项目流程

本题为简单题,目的是为了考察对于哈希表(HashTable)和栈(stack)的运用(数据结构)。

注:以下解法仅代表个人观点,并非唯一解法,仅供记录与参考!

题目如下所示:

代码解析(python):

# # @lc app=leetcode.cn id=496 lang=python3 # # [496] 下一个更大元素 I # # @lc code=start class Solution: def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]: res = [] #初始化一个数组存储结果 stack = [] mapping = {} #哈希表,记录每个元素的“下一个更大元素” # 遍历nums2中的每个元素 for num in nums2: # 当栈不为空且当前元素大于栈顶元素时 # 说明找到了栈顶元素的下一个更大元素 while len(stack) != 0 and num > stack[-1]: # 取出栈顶元素 temp = stack.pop() # 记录该元素的下一个更大元素 mapping[temp] = num # 将当前元素压入栈中 stack.append(num) # 处理栈中剩余的元素,它们没有下一个更大元素 while len(stack) != 0: mapping[stack.pop()] = -1 # 遍历nums1,根据mapping获取每个元素的下一个更大元素 for num in nums1: res.append(mapping[num]) return res

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询