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

综合算法 IV | 数据结构设计

综合算法 IV | 数据结构设计

设计数据结构

面试中经常需要设计满足特定要求的数据结构。

LRU 缓存

from collections import OrderedDict class LRUCache: def __init__(self, capacity): self.capacity = capacity self.cache = OrderedDict() def get(self, key): if key not in self.cache: return -1 self.cache.move_to_end(key) return self.cache[key] def put(self, key, value): if key in self.cache: self.cache.move_to_end(key) self.cache[key] = value if len(self.cache) > self.capacity: self.cache.popitem(last=False)

最小栈

class MinStack: def __init__(self): self.stack = [] self.min_stack = [] def push(self, val): self.stack.append(val) if not self.min_stack or val <= self.min_stack[-1]: self.min_stack.append(val) def pop(self): val = self.stack.pop() if val == self.min_stack[-1]: self.min_stack.pop() def top(self): return self.stack[-1] def getMin(self): return self.min_stack[-1]

栈实现队列

class MyQueue: def __init__(self): self.in_stack = [] self.out_stack = [] def push(self, x): self.in_stack.append(x) def pop(self): if not self.out_stack: while self.in_stack: self.out_stack.append(self.in_stack.pop()) return self.out_stack.pop() def peek(self): if not self.out_stack: while self.in_stack: self.out_stack.append(self.in_stack.pop()) return self.out_stack[-1] def empty(self): return not self.in_stack and not self.out_stack

总结

设计数据结构需要理解常见数据结构的原理,根据需求组合实现。

http://www.zskr.cn/news/1423766.html

相关文章:

  • 从软考拓扑到真实项目:手把手教你规划企业网络的安全区域(含DMZ、信任区、非信任区)
  • 如何快速定位虚幻引擎Pak文件中的资源问题:UnrealPakViewer实战指南
  • Path of Building PoE2:从装备导入到交易优化的完整工作流指南
  • 制造业AI落地厂商工程化能力评估:从PoC到规模化部署的五个验证指标
  • 基于Home Assistant与ESP32的智能家居传感器DIY指南
  • 避坑指南:KDL库ChainIkSolverPos_LMA求解器参数调优与常见失败原因分析
  • 综合算法 VI | 算法思维培养
  • 如何通过Proxmark3GUI图形界面轻松掌握RFID卡片分析技术
  • 猫抓浏览器扩展终极指南:快速掌握网页资源嗅探与下载技巧
  • CAPL调试踩坑实录:从‘它为什么不执行’到精准定位问题的5个实用技巧
  • 北京上班族福利!京顺斋上门回收,省时省力,高效变现 - 深鉴新闻
  • 【C++】STL
  • Lindy售后自动化部署失败率下降83%的关键配置:一线工程师绝不外传的5个参数调优技巧
  • 怎样高效使用WPS-Zotero插件:Linux平台文献管理终极方案
  • 成都钢材代理商|一站式供应钢材、全品类仓储贸易中心 - 四川盛世钢联营销中心
  • 2026甄选:福州汽车四轮定位服务公司——仓山区/小车/大型车/SUV/新能源车精准调校与安全护航实力之选 - 品牌企业推荐师(官方)
  • 一网打尽全网热门资源:用res-downloader轻松保存视频号、抖音、小红书内容
  • Ubuntu 22.04 重启后网卡‘消失’?别慌,手把手教你用 netplan 找回 ens33(附完整配置流程)
  • XP Power原装电源模块ECL30UT03-S FECL30UD01/ECL30UD02/ECL30UD03
  • 双面硅光探针台在GPU测试中的应用与优势分析
  • 存储·芯片·AI:三浪共振背后的深度逻辑
  • 2026 降AI率工具实测对比:真正好用,论文小白救急攻略 - 降AI小能手
  • TwitchNoSub:3分钟解锁所有订阅专属VOD观看权限的终极解决方案
  • 探索MAA明日方舟小助手:如何通过多语言架构解锁全球玩家的自动化体验
  • 如何判断2230固态硬盘是否损坏?一篇讲透SSD故障诊断的实用指南
  • 告别网络依赖:5分钟搞定K3s离线单机版,快速搭建个人K8s学习环境
  • 2026年中小微企业破局与资源极速变现指南——揭秘武汉青创会“次日达”对接模式 - 科普万物
  • USB3.0对拷线方案芯片
  • 单一职责原则实例:Login登录类重构
  • AI增强的自动化测试执行体系