面试高频题——LRU
LRU的思路很简单,说白了就是用哈希表和双向链表来实现,当访问到存在于缓存中的节点时,将其置换到链表尾部即可,而当LRU缓存中保存的数据达到容量后,需要将链表头部的节点置换出缓存。虽然总体的实现思路简单,但是相关的细节还是很多,从而很难做到在短时间内BUG FREE,从而错失了面试中完成本题的机会,所以需要提前准备,也就是先自己实现背板一下,以下是一个C++的实现。struct Node {...
LRU的思路很简单,说白了就是用哈希表和双向链表来实现,当访问到存在于缓存中的节点时,将其置换到链表尾部即可,而当LRU缓存中保存的数据达到容量后,需要将链表头部的节点置换出缓存。虽然总体的实现思路简单,但是相关的细节还是很多,从而很难做到在短时间内BUG FREE,从而错失了面试中完成本题的机会,所以需要提前准备,也就是先自己实现背板一下,以下是一个C++的实现。struct Node {...
前言今天刚好看到3Blue1Brown的卷积视频视频然后看到做卷积的快速算法涉及到了FFT,于是就研究了半天FFT到底是什么引入首先说明一下卷积是在做什么...
适用场景树状数组是一种适用于多次单点修改统计区间和问题的数据结构。基本思想Binary Indexed Tree 求和的基本思想在于,给定需要求和的位置 i ,例如 13 ,我们可以利用其二进制表示法来进行分段(或者说分层)求和:13 = 2^3 + 2^2 + 2^0,则prefixSum(13) = RANGE(1, 8) + RANGE(9, 12) + RANGE(13, 13) (...