哈希表/链表--LRU缓存机制

目录

题号

思路

    对数据的操作是通过key访问到value,这使用map即可实现快速访问

    最久未使用,表明对数据的增改查操作都会使得目标元素的"优先级"增高,即最近被使用,故,理论上可以使用优先级队列标记每一个哈希元素的优先级,当超过容量后,遍历优先级队列找到优先级最低的那一个进行删除即可

    同时新增、获取、更新都要对优先级做调整,拿获取来说,我们需要先findIndex到指定位置,然后splice掉,最后将元素unshift到头部,这些时间复杂度均比较高,故不算最优实现

    那么,如果是链表的话,就不会有这样的问题了

    故该题的核心是使用哈希表存储key、value,使用链表表示优先级

实现

    初始化链表和哈希表

    get

    put

    removeNode和setHead

    结果

你可能感兴趣的:(哈希表/链表--LRU缓存机制)