💾 algorithm-tutorial 是一个数据结构与算法教程。
掌握数据结构与算法,你看待问题的深度,解决问题的角度就会完全不一样。
- 🔁 项目同步维护:Github | Gitee
- 📖 电子书阅读:Github Pages | Gitee Pages
题目 | 掌握度 |
---|---|
141. 环形链表 | 已掌握 |
142. 环形链表 II | 已掌握 |
160. 相交链表 | 已掌握 |
19. 删除链表的倒数第 N 个结点 | 已掌握 |
21. 合并两个有序链表 | 已掌握 |
23. 合并 K 个升序链表 | 已掌握 |
86. 分隔链表 | 已掌握 |
876. 链表的中间结点 | 已掌握 |
剑指 Offer 22. 链表中倒数第 k 个节点 | 已掌握 |
题目 | 掌握度 |
---|---|
82. 删除排序链表中的重复元素 II | 已掌握 |
378. 有序矩阵中第 K 小的元素 | 未掌握 |
373. 查找和最小的 K 对数字 | 未掌握 |
2. 两数相加 | 已掌握 |
445. 两数相加 II | 已掌握 |
题目 | 掌握度 |
---|---|
206. 反转链表 | 未掌握 |
92. 反转链表 II | 不熟练 |
25. K 个一组翻转链表 | 不熟练 |
题目 | 掌握度 |
---|---|
26. 删除有序数组中的重复项 | 已掌握 |
27. 移除元素 | 已掌握 |
283. 移动零 | 已掌握 |
704. 二分查找 | 已掌握 |
1. 两数之和 | 已掌握 |
167. 两数之和 II - 输入有序数组 | 已掌握 |
LCR 179. 查找总价格为目标值的两个商品 | 已掌握 |
LCR 006. 两数之和 II - 输入有序数组 | 已掌握 |
344. 反转字符串 | 已掌握 |
5. 最长回文子串 | 未掌握 |
题目 | 掌握度 |
---|---|
48. 旋转图像 | 未掌握 |
54. 螺旋矩阵 | 未掌握 |
59. 螺旋矩阵 II | 未掌握 |
题目 | 掌握度 |
---|---|
80. 删除有序数组中的重复项 II | 已掌握 |
125. 验证回文串 | 已掌握 |
75. 颜色分类 | 已掌握 |
88. 合并两个有序数组 | 未掌握 |
977. 有序数组的平方 | 已掌握 |
1329. 将矩阵按对角线排序 | 未掌握 |
1260. 二维网格迁移 | |
867. 转置矩阵 | 已掌握 |
14. 最长公共前缀 | 已掌握 |
题目 | 掌握度 |
---|---|
76. 最小覆盖子串 | 未掌握 |
567. 字符串的排列 | |
题目 | 掌握度 |
---|---|
875. 爱吃香蕉的珂珂 | 未掌握 |
1011. 在 D 天内送达包裹的能力 | 未掌握 |
410. 分割数组的最大值 | 未掌握 |
题目 | 掌握度 |
---|---|
303. 区域和检索 - 数组不可变 | 不熟练 |
304. 二维区域和检索 - 矩阵不可变 | 未掌握 |
题目 | 掌握度 |
---|---|
1094. 拼车 | |
1109. 航班预订统计 | |
370. 区间加法 |
题目 | 掌握度 |
---|---|
225. 用队列实现栈 | 不熟练 |
232. 用栈实现队列 | 已掌握 |
题目 | 掌握度 |
---|---|
71. 简化路径 | 不熟练 |
143. 重排链表 | 已掌握 |
20. 有效的括号 | 已掌握 |
150. 逆波兰表达式求值 | 已掌握 |
388. 文件的最长绝对路径 | 未掌握 |
155. 最小栈 | |
895. 最大频率栈 |
题目 | 掌握度 |
---|---|
933. 最近的请求次数 | 不熟练 |
622. 设计循环队列 | |
题目 | 掌握度 |
---|---|
496. 下一个更大元素 I | |
503. 下一个更大元素 II | |
739. 每日温度 | |
剑指 Offer II 038. 每日温度 |
题目 | 掌握度 |
---|---|
104. 二叉树的最大深度 | 已掌握 |
144. 二叉树的前序遍历 | 已掌握 |
543. 二叉树的直径 | |
114. 二叉树展开为链表 | |
116. 填充每个节点的下一个右侧节点指针 | 未掌握 |
226. 翻转二叉树 | 已掌握 |
105. 从前序与中序遍历序列构造二叉树 | 不熟练 |
106. 从中序与后序遍历序列构造二叉树 | 不熟练 |
654. 最大二叉树 | 已掌握 |
889. 根据前序和后序遍历构造二叉树 | |
297. 二叉树的序列化与反序列化 | 未掌握 |
题目 | 掌握度 |
---|---|
322. 零钱兑换 | |
509. 斐波那契数 | |
题目 | 掌握度 |
---|---|
55. 跳跃游戏 | |
45. 跳跃游戏 II |
题目 | 掌握度 |
---|---|
23. 合并 K 个升序链表 | 已掌握 |
- 书籍
- 刷题必备
- 《剑指 offer》
- 《编程之美》
- 《编程之法:面试和算法心得》
- 《算法谜题》 都是思维题
- 基础
- 算法设计
- 《算法设计与分析基础(第 3 版)》
- 《Algorithm Design Manual》 - 算法设计手册 红皮书
- 《算法导论》 - 是一本对算法介绍比较全面的经典书籍
- 《Algorithms on Strings,Trees and Sequences》
- 《Advanced Data Structures》 - 各种诡异高级的数据结构和算法 如元胞自动机、斐波纳契堆、线段树 600 块
- 刷题必备
- 学习网站
- https://github.com/TheAlgorithms/Java
- https://github.com/nonstriater/Learn-Algorithms
- https://github.com/trekhleb/javascript-algorithms
- https://github.com/wangzheng0822/algo
- https://github.com/kdn251/interviews/blob/master/README-zh-cn.md#%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84
- July 博客
- 《数学建模十大经典算法》
- 《数据挖掘领域十大经典算法》
- 《十道海量数据处理面试题》
- 《数字图像处理领域的二十四个经典算法》
- 《精选微软等公司经典的算法面试 100 题》
- The-Art-Of-Programming-By-July
- 微软面试 100 题
- 程序员编程艺术
- 基本算法演示
- 编程网站
- 教程
- 高级数据结构和算法 北大教授张铭老师在 coursera 上的课程。完成这门课之时,你将掌握多维数组、广义表、Trie 树、AVL 树、伸展树等高级数据结构,并结合内排序、外排序、检索、索引有关的算法,高效地解决现实生活中一些比较复杂的应用问题。当然 coursera 上也还有很多其它算法方面的视频课程。
- 算法设计与分析 Design and Analysis of Algorithms 由北大教授 Wanling Qu 在 coursera 讲授的一门算法课程。首先介绍一些与算法有关的基础知识,然后阐述经典的算法设计思想和分析技术,主要涉及的算法设计技术是:分治策略、动态规划、贪心法、回溯与分支限界等。每个视频都配有相应的讲义(pdf 文件)以便阅读和复习。
- 算法面试通关 40 讲
- 数据结构与算法之美
- Data Structures - Computer Science Course for Beginners - 高赞 YouTube 视频教程
| 技术文档归档 | 算法和数据结构教程系列 |