面试高频题——LRU
LRU的思路很简单,说白了就是用哈希表和双向链表来实现,当访问到存在于缓存中的节点时,将其置换到链表尾部即可,而当LRU缓存中保存的数据达到容量后,需要将链表头部的节点置换出缓存。虽然总体的实现思路简单,但是相关的细节还是很多,从而很难做到在短时间内BUG FREE,从而错失了面试中完成本题的机会,所以需要提前准备,也就是先自己实现背板一下,以下是一个C++的实现。struct Node {...
LRU的思路很简单,说白了就是用哈希表和双向链表来实现,当访问到存在于缓存中的节点时,将其置换到链表尾部即可,而当LRU缓存中保存的数据达到容量后,需要将链表头部的节点置换出缓存。虽然总体的实现思路简单,但是相关的细节还是很多,从而很难做到在短时间内BUG FREE,从而错失了面试中完成本题的机会,所以需要提前准备,也就是先自己实现背板一下,以下是一个C++的实现。struct Node {...
防抖函数export function debounce<T extends (...args: any) => any>(fn: T,...
前言今天刚好看到3Blue1Brown的卷积视频视频然后看到做卷积的快速算法涉及到了FFT,于是就研究了半天FFT到底是什么引入首先说明一下卷积是在做什么,3B1B这个视频主要是讲解了离散卷积以这个色子概率问题为例子,两个色子的点数之和的求解就可以表示成卷积的形式将一行色子倒序,然后与另一行色子进行一个类似滑动窗口匹配的形式,便可以计算卷积的结果,事实上其实就是如同上图的这样一个公式。这便是...
适用场景树状数组是一种适用于多次单点修改统计区间和问题的数据结构。基本思想Binary Indexed Tree 求和的基本思想在于,给定需要求和的位置 ...
应用程序基本执行环境在这种执行环境下,操作系统与应用程序的界限并不明显,应用程序即是操作系统的组成部分,均在内核态下运行,一旦应用程序出错,便会导致整个操作系统的崩溃批处理操作系统从批处理操作系统开始,用户程序与操作系统有了明显的界限,用户程序运行在用户态下,对于一些操作需要通过特权级的切换来完成(系统调用),这时,在操作系统与用户程序间建立了系统调用接口(syscall)。通过这种方式,也...