感觉很坑,等了很久才被面的,一上来就说这个岗位只能去深圳。而明明一起同行的同学面的是同职位的上海岗位。也没心情继续写程序。要求实现一下LRU内存调度算法。其实是蛮简单的算法,但是因为其实不太想去深圳所以心思已经不太对了,还是面试经验不足吧。
LRU,要求实现get和add。想法就是用一个链表,每个节点存储key和value两个值。如果被调度就放到末尾,这样经过一段时间之后,第一个节点天然就是最长时间未使用的节点。
get就是根据key来查找相应的value。比较简单。
add的时候需要验证链表结点数量是否已到最大值,如果是,就pop掉头节点,然后再把新加入的节点放在末尾就可以了。
实现起来也比较简单,这里就不写出源码了。