
数据结构
打不过我吧
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【leetcode】460. LFU缓存
题目描述:460分析:1 要统计每一个key出现的次数:一个哈希表m来记录当前数据{key, value}和其出现次数之间的映射2 把相同频率的key都放到一个list中,那么需要另一个哈希表freq来建立频率和一个里面所有key都是当前频率的list之间的映射。3 由于题目中要我们在O(1)的时间内完成操作,为了快速的定位freq中key的位置,我们再用一个哈希表iter来建立key和freq中key的位置之间的映射。4 还需要两个变量cap和minFreq,分别来保存cache的原创 2020-08-14 16:17:21 · 208 阅读 · 0 评论 -
【leetcode】146. LRU缓存机制
题目描述:146参考分析:LRU(Least Recently Used,最近最少使用)淘汰内存策略,最近使用的根据时间局部性永远放在队首、最不常使用放在队尾,当内存满了的时候淘汰掉不常使用的。本题要求设计:1 容量capacity;2 put(key, val) 方法存入键值对; 时间复杂度为 O(1)3 get(key) 方法获取 key 对应的 val,如果 key 不存在则返回 -1。时间复杂度为 O(1)看到O(1)必然想起hashmap的查找,为了删除和插..原创 2020-08-13 14:23:27 · 155 阅读 · 0 评论 -
【广义表】长度和深度
广义表长度=属于最外层括号的逗号数加一。本题逗号为0 所以长度为1广义表深度=删除几层括号后可成为一个序列。广义表即我们通常所说的列表(lists)。它放松了对表元素的原子性限制,允许他们有自身结构。那么广义表E((a,(a,b),((a,b),c)))的长度和深度分别为:1和4...原创 2020-04-18 16:39:31 · 1635 阅读 · 0 评论 -
完全二叉树的叶子节点计算
一棵完全二叉树共有2018个结点,则叶子结点的个数是?共有2018个节点说明有11层,前10层的节点总数为1023,所以第11层节点总数为995,995个节点需要占据第10层498个节点,所以第10层的叶节点为512-498=14,所以总共叶节点为995+14=1009完全二叉树,2018为偶数,则n1=1;n0+n1+n2=2018, n0=n2+1; =>n0=1009...原创 2020-04-18 16:37:21 · 6372 阅读 · 2 评论 -
二叉树的【先序遍历】【中序遍历】【后序遍历】【层序遍历】【递归】【非递归】
目录1 先序遍历2 中序遍历3 后序遍历4 层序遍历测试代码:帮助理解:浙江大学数据结构:https://www.bilibili.com/video/BV1H4411N7oD?p=331 先序遍历//前序遍历void ProOrderTraverse(BiTree tree){ if (tree == NULL) return; cout &...原创 2020-04-07 16:14:38 · 204 阅读 · 0 评论 -
【数据结构】【快速排序算法】【C++】
快排原理——分治1、从数列中取出一个数作为基准数(枢轴,pivot)。2、将数组进行划分(partition),将比基准数大的元素都移至枢轴右边,将小于等于基准数的元素都移至枢轴左边。3、再对左右的子区间重复第二步的划分操作,直至每个子区间只有一个元素。快排最重要的一步就是划分了。划分的过程用通俗的语言讲就是“挖坑”和“填坑”。快速排序时间复杂度快速排序的时间复杂度在最坏...原创 2020-04-07 11:16:39 · 320 阅读 · 0 评论 -
海量数据的处理【位图】【分治】【hashmap】【大顶堆】
目录如何找出排名前 500 的数?题目描述解答思路如何按照 query 的频度排序?题目描述解答思路方法总结如何从 5 亿个数中找出中位数?题目描述解答思路方法总结如何统计不同电话号码的个数?题目描述解答思路方法总结如何查询最热门的查询串?题目描述解答思路方法总结如何在大量的数据中判断一个数是否存在?题目描述解...原创 2020-04-06 11:50:35 · 1000 阅读 · 0 评论