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

LeetCode 堆的插入与删除题解

LeetCode 堆的插入与删除题解

题目描述

实现堆的插入和删除操作。

堆的插入与删除

插入操作

  1. 将新元素添加到数组末尾
  2. 向上调整(sift up)

删除操作

  1. 删除堆顶元素
  2. 将数组末尾元素移到堆顶
  3. 向下调整(sift down)

代码实现

import heapq class MinHeap: def __init__(self): self.heap = [] def push(self, val): heapq.heappush(self.heap, val) def pop(self): return heapq.heappop(self.heap) def top(self): return self.heap[0] if self.heap else None # 测试 def test_min_heap(): heap = MinHeap() heap.push(3) heap.push(1) heap.push(2) print(heap.pop()) # 输出:1 print(heap.top()) # 输出:2 if __name__ == "__main__": test_min_heap()

总结

堆的插入和删除操作是堆的基本操作,通过向上和向下调整来维护堆的性质。

http://www.jsqmd.com/news/852387/

相关文章:

  • 口碑好的步进电机哪个牌子好
  • 欢喜财税怎么样?|代理记账服务深度评价:流程、体验与真实差距 - 欢欢在创业
  • 为什么你的/fast命令总被降级?Midjourney内部队列优先级算法首度曝光(含3个即时生效的Prompt签名技巧)
  • Excel-DNA完全指南:终极.NET Excel插件开发实战手册
  • 利用Taotoken多模型能力为AIGC应用动态选择最佳模型
  • MarkdownViewer++:Notepad++终极Markdown实时预览插件完整指南
  • 光伏并网实战:如何用Simulink仿真优化LCL逆变器的准PR控制参数?
  • SEM教程丨如何用“场景词”突围,月揽165个询盘?
  • 基于ARM9工业平板与Linux的水质在线监测系统开发实践
  • 浙江省报考SCMP和CPPM有什么区别?认准官方双认证报考机构 - 众智商学院课程中心
  • 无代码平台怎么选?6 个核心维度帮你科学选型
  • 【MATLAB】基于 MATLAB 的离网光伏储能微电网容量优化仿真研究
  • 苏州黄金回收避坑指南|正规门店推荐,远离虚假报价 - 润富黄金珠宝行
  • 封闭式负荷开关(铁壳开关)原理、安装、维护与故障排查全解析
  • FlicFlac:3分钟学会Windows音频格式转换,让音乐随心所欲播放
  • 研究生你的救星来了
  • 高性能RISC-V MCU电源系统设计:基于HPM6P41的升降压转换与PCB布局实战
  • 2026内蒙古发电机租赁与销售对比:五家实力服务商深度解析 - 深度智识库
  • 告别AT指令恐惧:用Ai-WB2模组和手机App,5分钟搞定蓝牙串口透传
  • 新闻时效性断崖式下跌?Perplexity环境变量配置错误全解析,立即修复不踩坑
  • 3分钟掌握MangaOCR:日语漫画文本识别的终极解决方案
  • 如何用TestDisk和PhotoRec免费恢复丢失的分区和文件:完整数据恢复指南
  • Go语言交互式学习终极指南:掌握A Tour of Go的深度实践方法
  • Mission Planner:终极开源无人机地面站软件,如何快速掌握专业飞行控制?
  • 别再只会用KNN了!手把手教你玩转sklearn的NearestNeighbors(从参数到实战避坑)
  • 漫画阅读不再难!MangaOCR日语漫画文本识别终极指南
  • 大模型 API 聚合平台深度评测:api中转站企业生产首选与开发者场景选型指南
  • UrsPahoMqttClient 心跳问题解决指南——Paho 底层已自动处理,设好 KeepAlive 就行
  • 2026年京东云OpenClaw/Hermes Agent配置Token Plan保姆级流程
  • 百考通AI,让本科论文告别“苦力劳动”:一篇不焦虑的写作指南