文章作者:Tyan
博客:noahsnail.com ?|? CSDN ?|? 簡(jiǎn)書
1. Description
Next Greater Element I
2. Solution
解析:Version 1,由于元素是唯一的,通過(guò)循環(huán)找出每個(gè)nums2中的滿足條件結(jié)果保存到字典中,遍歷nums1,獲得結(jié)果。Version 2通過(guò)使用棧來(lái)尋找滿足條件的結(jié)果,減少搜索時(shí)間。
- Version 1
class Solution:
def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
stat = {}
for i in range(len(nums2)):
for j in range(i+1, len(nums2)):
if nums2[j] > nums2[i]:
stat[nums2[i]] = nums2[j]
break
if nums2[i] not in stat:
stat[nums2[i]] = -1
result = [stat[x] for x in nums1]
return result
- Version 2
class Solution:
def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
stat = {num: -1 for num in nums2}
stack = []
for num in nums2:
while stack and stack[-1] < num:
stat[stack.pop()] = num
stack.append(num)
result = [stat[x] for x in nums1]
return result