数据结构与算法总结(完结)

46 篇文章 4 订阅
19 篇文章 2 订阅

极客时间算法学习之后开始跟着花花酱刷题。大概从4月份开始的。从今天开始(2020-8-24)开始做总结,复习一下已经刷过的题目。到目前为止leetcode刷题323道。
2020/8/24 完成题目整理,下一步是将每个题目都加上超链接。这个超链接尽可能都指向csdn的博客。

2020/10/23 完成12个题目完成了散列表。进度有点蜗速。大多数题目不能做到看一眼就知道解法,仿佛之前做的全忘记了。但是一看答案,就回想起当时自己做题的情景了。继续。

2020/11/5 完成二叉树、跳表、字符串部分。二叉树部分有些代码没写,只是看了看。跳表好早就想动手写一写。字符串部分也是好早就想综合复习一下。

2020/11/14完成了图的部分。数据结构部分的习题完成。开始算法部分的习题。

2020/11/30完成了二分。

2020/12/18 回溯算法刷起来相对简单一些,hard题目需要再刷一次
2020/12/24 回溯算法刷完
2021/1/2 动态规划刷完。发现在处理字符串的动态规划问题的还是会有些理解不了的地方。本文章更新完毕。

1刷题原则

根据花花酱建议,梳理出以下结论。
要刷多少题
1 每个类型 10-20,总共200-300题

如何刷题
1 同类型题目一起刷
2 看代码很重要,看至少3-5种不同实现
3 第一遍:5分钟想不出来就看答案;第二遍:尝试不看答案完整实现,一道题目不超过60min;第三遍:尝试快速实现,15-20min实现不了就看答案
4 完整的手写代码,增强肌肉记忆
5 培养代码风格

2 数据结构题目整理

根据刷题原则这是我第二次刷题。其实算上以前断断续续的,算三刷也不为过。
这次题目整理会把之前在极客时间算法题目中的课后题目和这次刷的题目一起整理一下。这部分整理数据结构的题目。

2.1 数组

  1. 15 3sum
  2. 169 Majority Element
  3. 41 Missing Positive

2.2链表

  1. 141 LinkedListCycle I
  2. 23 Merge k sorted lists

2.3 栈

  1. 20 Valid Parentheses
  2. 32 Longest Valid Parentheses
  3. 150 Evaluate Reverse Polish Notatio

2.4 队列

  1. 641 Design Circular Deque
  2. 239 Sliding Window Maximum

2.5 散列表

实现一个基于链表法解决冲突问题的散列表
实现一个 LRU 缓存淘汰算法

2.6 二叉树

实现一个二叉查找树,并且支持插入、删除、查找操作
实现查找二叉查找树中某个节点的后继、前驱节点
实现二叉树前、中、后序以及按层遍历
Invert Binary Tree
Maximum Depth of Binary Tree
Validate Binary Search Tree
Path Sum

2.7 堆

实现一个小顶堆、大顶堆(堆结构描述)、优先级队列
实现堆排序利用优先级队列
合并 K 个有序数组
求一组动态数据集合的最大 Top K

2.8 跳表

跳表的实现(参考小灰

2.9 图

实现有向图、无向图、有权图、无权图的邻接矩阵和邻接表表示方法
实现图的深度优先搜索、广度优先搜索
实现 Dijkstra 算法、A* 算法
实现拓扑排序的 Kahn 算法、DFS 算法

2.10 Trie树

  1. 只包含 a~z 这 26 个英文字母的 Trie 树

3 算法题目整理

3.1 排序

1 排序:实现归并排序、快速排序、插入排序、冒泡排序、选择排序
2 编程实现 O(n) 时间复杂度内找到一组数据的第 K 大元素
3 还要记得有桶排序、计数排序

3.2 二分

  1. 35 Search Insert Position
    相似题目:34、704、981
    tag:upper_bound
  2. 33 Search in Rotated Sorted Array
    相似题目:81、153154162、852
    tag:rotated;peek
  3. 69 Sqrt(x)
    tag:upper_bound
  4. 74 Search a 2D Matrix
  5. 875 Koko Eating Bananas
    相似题目:1011
    tag:guess ans and check
  6. 4 Median of Two Sorted Arrays
  7. 378 Kth Smallest Element in a Sorted Matrix
    相似题目:668
    tag:k-th+matrix 对数组中的值做二分,也有guess and check的感觉
  8. 719 Find K-th Smallest Pair Distance
    相似题目:786
    tag:k-th+two pointers

3.3 搜索(BFS、DFS)/回溯

  1. 17 Letter Combinations of a Phone Number
    相似题目:39、40、7778、90、216
    tag:组合
  2. 46 Permutations
    相似题目:47、784943996
    tag:排列
  3. 22 Generate Parentheses
    相似题目 301
    tag:DFS
  4. 37 Sudoku Solver
    相似题目:51 52
    tag:DFS
  5. 79 Word Search
    相似题目:212
    tag:DFS
  6. 127 Word Ladder
    相似题目:126752818
    tag:BFS
  7. 542 01 Matrix
    相似题目:675934
    tag:BFS
  8. 698 Partition to K Equal Sum Subsets
    相似题目:93131241282842
    tag:排列

3.4 哈希

3.5 贪心

3.6 分治

  1. 169 Majority Element
  2. 153 Find Minimum in Rotated Sorted Array
    相似题目 154
  3. 912 Sort and Array
  4. 315 Count of Smaller Numbers After Self

3.7 动态规划

  1. 70 Climbing Stairs 相似题目:746、1137
  2. 303 Range Sum Query – Immutable 相似题目:1218
  3. 53 Maximum Subarray 相似题目:121
  4. 62 Unique Paths 相似题目:63、64120174、931、1210
  5. 85 Maximal Rectangle 相似题目:221、304、1277
  6. 198 House Robber 相似题目:213309740790801
  7. 279 Perfect Squares 相似题目:
  8. 139 Word Break 相似题目 140818
  9. 300 Longest Increasing Subsequence 相似题目:6731048
  10. 最小路径和(详细可看 @Smallfly 整理的 Minimum Path Sum)
  11. 编程实现莱文斯坦最短编辑距离
  12. 编程实现查找两个字符串的最长公共子序列

3.8 字符串匹配

  1. 344 Reverse String
  2. 151 Reverse Words in a String
  3. 8 String to Integer (atoi)
  4. KMP
  5. AC自动机
    AC介绍
    AC自动机就是多模式匹配的kmp,文章没有详细看,抄来的代码跑一跑。
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值