[TOC]
这是我的 LeetCode 题解笔记。说来惭愧,从学生时代到进入社会,都没有在 LeetCode 上刷过算法题(只刷过《剑指 offer》之类的)。因此,为了弥补遗憾,也为了夯实自己的数据结构和算法基础,所以决定工作之余利用闲暇时间刷刷 LeetCode 的算法题。一方面可以捡起数据结构和算法,另一方面也可以锻炼自己解决问题的能力。
因为自己的题解笔记中包含少量的 LaTeX 公式,如果直接打开可能无法正确显示,因此将笔记的搬到了 CSDN 博客上,读者可以直接点击题目,会自动跳转到相应的文章去。所有的笔记都在 notebooks 文件夹下,感兴趣的读着也可以 clone 下来看。
可以保证的是,所有的题目都是可以正确通过的,而且基本上每道题笔者都会给出多种解法。因为自己水平有限,如果描述有误的,不吝指出,万分感激。
后记:刷着刷着自己确实上瘾了,每天如果有空一定要刷刷题才觉得有意思,也算是别样的乐趣吧。
# | 题名 | 标签 | 解答 | 难度 |
---|---|---|---|---|
1 | 两数之和 | 数组,哈希表 | Java,Python | 简单 |
2 | 两数相加 | 链表 | Java,Python | 中等 |
7 | 反转整数 | 数学 | 简单 | |
9 | 回文数 | 数学 | 简单 | |
20 | 有效的括号 | 字符串,栈 | 简单 | |
21 | 合并两个有序链表 | 链表 | Java,Python | 简单 |
54 | 螺旋矩阵 | 数组 | 中等 | |
61 | 旋转链表 | 链表,双指针 | 中等 | |
66 | 加一 | 数组,数学 | Java,Python | 简单 |
94 | 二叉树的中序遍历 | 树,二叉树 | 简单 | |
102 | 二叉树的层序遍历 | 树,二叉树 | 简单 | |
136 | 只出现一次的数字 | 数组,Map,数学,位运算 | Java,Python | 简单 |
141 | 环形链表 | 链表,双指针 | Java,Python | 简单 |
142 | 环形链表Ⅱ | 链表,双指针 | Java,Python | 中等 |
160 | 相交链表 | 链表,双指针 | Java,Python | 简单 |
169 | 求众数 | 数组 | Java,Python | 简单 |
203 | 移除链表元素 | 链表 | Java,Python | 简单 |
206 | 反转链表 | 链表 | Java,Python | 简单 |
231 | 2的幂 | 数学 | 简单 | |
237 | 删除链表中的节点 | 链表 | 简单 | |
349 | 两个数组的交集 | 数组 | Java,Python | 简单 |
350 | 两个数组的交集Ⅱ | 数组 | Java,Python | 简单 |
498 | 对角线遍历 | 数组 | 中等 | |
530 | 二分搜索树的最小绝对值差 | 树,二分搜索树 | 简单 | |
724 | 寻找数组的中心索引 | 数组 | Java,Python | 简单 |
747 | 至少是其他数字两倍的最大数 | 数组 | Java,Python | 简单 |
804 | 唯一的摩尔斯密码词 | 集合 | 简单 | |
19 | 删除链表的倒数第N个节点 | 链表,双指针 | 中等 | |
347 | 前K个高频元素 | 堆,队列,优先队列 | 中等 | |
24 | 两两交换链表中的节点 | 链表 | 中等 | |
25 | k个一组翻转链表 | 链表 | 困难 | |
844 | 比较含退格的字符串 | 栈,双指针 | 简单 | |
232 | 用栈实现队列 | 栈,队列 | 简单 | |
225 | 用队列实现栈 | 栈,队列 | 简单 | |
692 | 前K个高频单词 | 堆,优先队列 | 中等 | |
703 | 数据流中的第K大元素 | 堆,优先队列 | 简单 | |
283 | 移动零 | 数组,双指针 | Java,Python | 简单 |
3 | 无重复字符的最长子串 | 字符串,双指针 | 中等 |