Leedcode-下一个更大元素 I

自己写的:

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  # 返回结果列表

 

posted @ 2024-05-17 14:59  Junior_bond  阅读(8)  评论(0)    收藏  举报