自己写的:
class Solution: def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]: res = [] # 结果列表,用于存储每个nums1中元素在nums2中的下一个更大元素 num1_ptr = 0 # 指向nums1当前元素的指针 num2_ptr = 0 # 指向nums2当前元素的指针 num2_len = len(nums2) # nums2的长度 while num1_ptr < len(nums1): # 遍历nums1中的每一个元素 flag = True # 用于标记是否找到下一个更大元素 while nums2[num2_ptr] != nums1[num1_ptr]: # 在nums2中寻找与当前nums1元素相同的元素 num2_ptr += 1 # 移动nums2的指针 while nums2[num2_ptr] <= nums1[num1_ptr]: # 在nums2中寻找下一个更大的元素 num2_ptr += 1 # 移动nums2的指针 if num2_ptr == num2_len: # 如果遍历到nums2的末尾还没有找到更大的元素 res.append(-1) # 在结果列表中添加-1 num2_ptr = 0 # 重置nums2指针 flag = False # 标记为未找到 break # 退出当前循环 if flag: # 如果找到了更大的元素 res.append(nums2[num2_ptr]) # 添加到结果列表 num2_ptr = 0 # 重置nums2指针 num1_ptr += 1 # 移动nums1的指针 return res # 返回结果列表
标签:num1,num2,元素,Leedcode,ptr,更大,nums1,nums2 From: https://www.cnblogs.com/yyyjw/p/18197803