数据结构与算法总结(完结)
極客時(shí)間算法學(xué)習(xí)之后開始跟著花花醬刷題。大概從4月份開始的。從今天開始(2020-8-24)開始做總結(jié),復(fù)習(xí)一下已經(jīng)刷過的題目。到目前為止leetcode刷題323道。
2020/8/24 完成題目整理,下一步是將每個題目都加上超鏈接。這個超鏈接盡可能都指向csdn的博客。
2020/10/23 完成12個題目完成了散列表。進(jìn)度有點(diǎn)蝸速。大多數(shù)題目不能做到看一眼就知道解法,仿佛之前做的全忘記了。但是一看答案,就回想起當(dāng)時(shí)自己做題的情景了。繼續(xù)。
2020/11/5 完成二叉樹、跳表、字符串部分。二叉樹部分有些代碼沒寫,只是看了看。跳表好早就想動手寫一寫。字符串部分也是好早就想綜合復(fù)習(xí)一下。
2020/11/14完成了圖的部分。數(shù)據(jù)結(jié)構(gòu)部分的習(xí)題完成。開始算法部分的習(xí)題。
2020/11/30完成了二分。
2020/12/18 回溯算法刷起來相對簡單一些,hard題目需要再刷一次
2020/12/24 回溯算法刷完
2021/1/2 動態(tài)規(guī)劃刷完。發(fā)現(xiàn)在處理字符串的動態(tài)規(guī)劃問題的還是會有些理解不了的地方。本文章更新完畢。
文章目錄
- 1刷題原則
- 2 數(shù)據(jù)結(jié)構(gòu)題目整理
- 2.1 數(shù)組
- 2.2鏈表
- 2.3 棧
- 2.4 隊(duì)列
- 2.5 散列表
- 2.6 二叉樹
- 2.7 堆
- 2.8 跳表
- 2.9 圖
- 2.10 Trie樹
- 3 算法題目整理
- 3.1 排序
- 3.2 二分
- 3.3 搜索(BFS、DFS)/回溯
- 3.4 哈希
- 3.5 貪心
- 3.6 分治
- 3.7 動態(tài)規(guī)劃
- 3.8 字符串匹配
1刷題原則
根據(jù)花花醬建議,梳理出以下結(jié)論。
要刷多少題
1 每個類型 10-20,總共200-300題
如何刷題
1 同類型題目一起刷
2 看代碼很重要,看至少3-5種不同實(shí)現(xiàn)
3 第一遍:5分鐘想不出來就看答案;第二遍:嘗試不看答案完整實(shí)現(xiàn),一道題目不超過60min;第三遍:嘗試快速實(shí)現(xiàn),15-20min實(shí)現(xiàn)不了就看答案
4 完整的手寫代碼,增強(qiáng)肌肉記憶
5 培養(yǎng)代碼風(fēng)格
2 數(shù)據(jù)結(jié)構(gòu)題目整理
根據(jù)刷題原則這是我第二次刷題。其實(shí)算上以前斷斷續(xù)續(xù)的,算三刷也不為過。
這次題目整理會把之前在極客時(shí)間算法題目中的課后題目和這次刷的題目一起整理一下。這部分整理數(shù)據(jù)結(jié)構(gòu)的題目。
2.1 數(shù)組
2.2鏈表
2.3 棧
2.4 隊(duì)列
2.5 散列表
實(shí)現(xiàn)一個基于鏈表法解決沖突問題的散列表
實(shí)現(xiàn)一個 LRU 緩存淘汰算法
2.6 二叉樹
實(shí)現(xiàn)一個二叉查找樹,并且支持插入、刪除、查找操作
實(shí)現(xiàn)查找二叉查找樹中某個節(jié)點(diǎn)的后繼、前驅(qū)節(jié)點(diǎn)
實(shí)現(xiàn)二叉樹前、中、后序以及按層遍歷
Invert Binary Tree
Maximum Depth of Binary Tree
Validate Binary Search Tree
Path Sum
2.7 堆
實(shí)現(xiàn)一個小頂堆、大頂堆(堆結(jié)構(gòu)描述)、優(yōu)先級隊(duì)列
實(shí)現(xiàn)堆排序利用優(yōu)先級隊(duì)列
合并 K 個有序數(shù)組
求一組動態(tài)數(shù)據(jù)集合的最大 Top K
2.8 跳表
跳表的實(shí)現(xiàn)(參考小灰)
2.9 圖
實(shí)現(xiàn)有向圖、無向圖、有權(quán)圖、無權(quán)圖的鄰接矩陣和鄰接表表示方法
實(shí)現(xiàn)圖的深度優(yōu)先搜索、廣度優(yōu)先搜索
實(shí)現(xiàn) Dijkstra 算法、A* 算法
實(shí)現(xiàn)拓?fù)渑判虻?Kahn 算法、DFS 算法
2.10 Trie樹
3 算法題目整理
3.1 排序
1 排序:實(shí)現(xiàn)歸并排序、快速排序、插入排序、冒泡排序、選擇排序
2 編程實(shí)現(xiàn) O(n) 時(shí)間復(fù)雜度內(nèi)找到一組數(shù)據(jù)的第 K 大元素
3 還要記得有桶排序、計(jì)數(shù)排序
3.2 二分
相似題目:34、704、981
tag:upper_bound
相似題目:81、153、154、162、852
tag:rotated;peek
tag:upper_bound
相似題目:1011
tag:guess ans and check
相似題目:668
tag:k-th+matrix 對數(shù)組中的值做二分,也有g(shù)uess and check的感覺
相似題目:786
tag:k-th+two pointers
3.3 搜索(BFS、DFS)/回溯
相似題目:39、40、77、78、90、216
tag:組合
相似題目:47、784、943、996
tag:排列
相似題目 301
tag:DFS
相似題目:51 52
tag:DFS
相似題目:212
tag:DFS
相似題目:126、752、818
tag:BFS
相似題目:675、934
tag:BFS
相似題目:93、131、241、282、842
tag:排列
3.4 哈希
3.5 貪心
3.6 分治
相似題目 154
3.7 動態(tài)規(guī)劃
3.8 字符串匹配
AC介紹
AC自動機(jī)就是多模式匹配的kmp,文章沒有詳細(xì)看,抄來的代碼跑一跑。
總結(jié)
以上是生活随笔為你收集整理的数据结构与算法总结(完结)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线程的几个状态
- 下一篇: Restful HMAC认证