Ryo's Blog
  • Articles
  • Learn from AI
  • Tags
  • More
  • ...
#杂技#Blog#杂谈#C++#Python#数据结构#算法#排序#算法竞赛#设计模式#笔记#GitHub#AWS#CI/CD#IaC#DevOps#VSCode#Hexo#JavaScript#Kubernetes#Docker#Cloud Native#Cursor#可视化#数学#工具#Nextjs#Tag1#Tag2#单行Tag#Tag#Tag/Tag2#Tag3#Linux#systemctl#journalctl#timedatectl#BasicKnowledge#Operation#Signal#memory#schedule#Cloud Computing#PyTorch#ONNX#深度学习#模型部署#学习笔记#OpenCV#图像处理#Rust#编程语言#Windows#macOS#可执行文件#LoRA#参数高效微调#模型训练#反向传播#自动微分#GoLang#Memory Management#Deep Learning#Model Management#Neural Networks#ResNet#Mathematics#协议#IoT#物联网#消息队列#Stable Diffusion#Concurrency#Scheduler#Goroutine#test#wiki#page1#subpage1#page2#subpage2#subpage3#subpage34#page3
如何手撕一个堆
2021-08-28

在参加如AtCoder等算法竞技,或是刷Leetcode等算法题时,我们总是不可避免地遇到堆这种数据结构。

当然,一般来说我们只要理解堆,知道堆的性质,知道怎么样用堆就足够了。在做题时只需要调用系统类库即可——在参加AtCoder时你甚至不会有时间去自己实现一个堆。

但是,如果哪一天你把编程语言的类库全忘光了,又遇到一题需要频繁求最值的题目——你明知这里要用堆,却又忘记该调用的类名了,咋办?我还真遇到过这问题:三年没刷算法,只能对着一道自己明显会的题干着急,愣是想不起PriorityQueue的名字。这时候,只能自己实现一个堆出来了。

#数据结构#算法#算法竞赛
© 2023 Ryo Jerry Yu. All rights reserved.