当前位置: 首页 > news >正文

力扣刷题(第一百零一天)

灵感来源 

- 保持更新,努力学习

- python脚本学习

下一个更大元素 I

解题思路

  1. 遍历 nums2,使用单调栈找到每个元素的下一个更大元素,并通过哈希表存储对应关系。
  2. 遍历 nums1,直接从哈希表中查询每个元素的下一个更大元素。
    class Solution:def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:# 哈希表存储nums2中每个元素的下一个更大元素next_greater = {}# 单调栈,用于寻找下一个更大元素stack = []# 遍历nums2,构建next_greater哈希表for num in nums2:# 当栈不为空且当前元素大于栈顶元素时,说明当前元素是栈顶元素的下一个更大元素while stack and num > stack[-1]:# 弹出栈顶元素,并记录其下一个更大元素为当前numtop = stack.pop()next_greater[top] = num# 将当前元素压入栈中,等待后续更大元素的出现stack.append(num)# 栈中剩余元素没有下一个更大元素,设置为-1while stack:top = stack.pop()next_greater[top] = -1# 遍历nums1,从哈希表中获取结果return [next_greater[num] for num in nums1]

逐行解释

class Solution:def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:# 哈希表:key为nums2中的元素,value为该元素的下一个更大元素next_greater = {}# 单调栈:用于临时存储尚未找到下一个更大元素的元素stack = []# 遍历nums2中的每个元素,寻找它们的下一个更大元素for num in nums2:# 核心逻辑:当当前元素大于栈顶元素时,栈顶元素的下一个更大元素就是当前元素# 循环处理栈中所有小于当前元素的元素while stack and num > stack[-1]:# 弹出栈顶元素(栈顶元素比当前元素小)top = stack.pop()# 记录栈顶元素的下一个更大元素为当前numnext_greater[top] = num# 将当前元素压入栈中,等待后续更大的元素出现stack.append(num)# 处理栈中剩余的元素:这些元素在nums2中没有下一个更大元素while stack:top = stack.pop()next_greater[top] = -1# 遍历nums1,从哈希表中直接获取每个元素的下一个更大元素return [next_greater[num] for num in nums1]

http://www.dtcms.com/a/303058.html

相关文章:

  • 0728 哈希表折半查找树二叉树
  • 【mysql】创建视图查询当月累计销售额的案例
  • python案例分析:基于新能源汽车论坛评价数据情感分析的客户满意度研究,文本挖掘包括lda主题分析和词频分析、情感分析、网络语义分析
  • 搜索二维矩阵Ⅱ C++
  • 【无标题】暗物质衰减现象解释
  • 二十一、动植物类(自然生态)
  • 鱼皮项目简易版 RPC 框架开发(三)
  • Python 实现多服务器并发启动 SDK-C Master 与 Viewer 的分布式方案
  • [尚庭公寓]15-个人中心
  • 力扣-22.括号生成
  • C++初学者4——标准数据类型
  • JavaScript对象与Math对象完全指南
  • 力扣7:整数反转
  • 利用DataStream和TrafficPeak实现大数据可观察性
  • jQuery 最新语法大全详解(2025版)
  • 下载k8s官方组件chart和容器镜像
  • JavaScript中的Promise.all方法详解
  • 坚鹏:AI智能体培训是知行学成为AI智能体创新应用引领者的基础
  • 【归并排序】排序数组(medium)
  • 阿里云【免费试用】Elasticsearch 智能运维 AI 助手
  • 应用信息更新至1.18.0
  • 加法器 以及ALU(逻辑算术单元)
  • 深入解析 Spring 获取 XML 验证模式的过程
  • redis数据库的四种取得 shell方法
  • C++模板进阶:从基础到实战的深度探索
  • python生成 requirement.txt 文件
  • 一个高效的阿里云漏洞库爬虫工具,用于自动化爬取和处理CVE数据
  • ROS2入门之开发环境搭建
  • AI-调查研究-40-多模态大模型量化 格局重塑:五大开源模型横评与技术对比
  • Navicat 17 教程:Windows 和 Mac 系统适用