数据结构
文章平均质量分 67
介绍各种数据结构及相应算法
紫菜花油菜花
这个作者很懒,什么都没留下…
展开
-
【数据结构】单调栈(概念,应用:最大矩形、雨水、牛、左右边界)
递增(减)栈 应用场景: 针对某个数,寻找它和它【左/右】两边第一个比他【大/小】的数,以及相距多少距离。 1. 接雨水 针对某个洼地,当前能接的雨水等于左右两侧【最大高度】的最小值-当前洼地的高度。(> O(N2)O(N^2)O(N2)) 对于某个洼地来说,其能盛水的量由【左右边界确定】,对于洼地> j0,j1,j0<j1,H[j0]<H[j1]j_0,j_1,j_0<j_1,H[j_0]<H[j_1]j0,j1,j0<j1,H[j0]<H[j1原创 2021-04-14 11:58:35 · 163 阅读 · 0 评论 -
【数据结构】LRU缓存机制结构(C++实现)
算法描述 LRU实际上是设计一个数据结构,有如下要求: 包含容量capacity和当前元素数量size 包含插入方法put和获取get 时间复杂度为O(1); 算法设计 一般来说通过两个数据结构来实现LRU机制,即 哈希表:用于存取【鍵-节点】对 双向链表:用于存取【键-值】对,尾节点为最新加入的节点,头节点的后一结点为LRU节点 struct Node{ int key,value; Node *pre,*next; Node(int _k,int _v):原创 2021-03-31 16:35:27 · 509 阅读 · 1 评论