![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法刷题
文章平均质量分 55
知识学徒
这个作者很懒,什么都没留下…
展开
-
19. 删除链表的倒数第 N 个结点
LeetCode原题链接 明确题意 删除链表节点的问题。 删除方式:删除节点的是找到该结点的上一个结点node:node.next = node.next.next; 那么题目中要删除倒数第N个结点就意味着,我们找到倒数第N+1个结点位置即可。 解法 在单链表找到倒数第N的结点的方法可以是: 先找到正序第N个结点,两个指针分别指向头结点和第N个结点,循环直至第N个结点的next为null,head指向的即是倒数第N+1个结点位置。 Coding 通过题意直接在本地通过TDD(测试驱动开发)的方式写算法题原创 2022-05-11 08:55:23 · 312 阅读 · 0 评论 -
146.LRU 缓存机制
LeetCode原题链接 明确题意 什么是LRU 缓存需要进行的操作是存和取。 不同的缓存算法主要体现在当缓存已满的时候,通过什么机制选择出需要删除的key。 LRU是Least Recently Used的缩写,即最近最少使用。 当缓存已满时删除最近最少使用的值。 解法 由于题目要求函数 get 和 put 必须以 O(1) 的平均时间复杂度运行。 所以选择使用哈希表以及双链表的方式实现。 Coding 通过题意直接在本地通过TDD(测试驱动开发) 的方式写算法题。 首先编写测试用例如下: package原创 2022-05-08 22:25:00 · 477 阅读 · 0 评论