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 @   Junior_bond  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示