leetcode分类刷题
1. 數(shù)組
??????? 數(shù)組是基本的數(shù)據(jù)結(jié)構(gòu),面試中考察數(shù)組的題目一般在思維上并不復(fù)雜,主要是考查面試者對(duì)代碼的掌控能力。
題目:
- easy
704. 二分查找
27. 移除元素
209. 長(zhǎng)度最小的子數(shù)組
59. 螺旋矩陣 II
2. 鏈表
??????? 鏈表是一種通過(guò)指針串聯(lián)在一起的線性結(jié)構(gòu),每一個(gè)節(jié)點(diǎn)由兩部分組成,一個(gè)是數(shù)據(jù)域,另一個(gè)是指針域(存放指向下一個(gè)節(jié)點(diǎn)的指針),鏈表的入口節(jié)點(diǎn)稱為頭節(jié)點(diǎn)(head),最后一個(gè)節(jié)點(diǎn)的指針域指向NULL(空指針)。
??????? 鏈表的三種類型:單鏈表、雙鏈表、循環(huán)鏈表
題目:
- easy
203. 移除鏈表元素
206. 反轉(zhuǎn)鏈表
- midding
707. 設(shè)計(jì)鏈表
19. 刪除鏈表的倒數(shù)第 N 個(gè)結(jié)點(diǎn)
142. 環(huán)形鏈表 II
3. 哈希表
??????? 哈希表(Hash Table),散列表,根據(jù)關(guān)鍵碼的值直接訪問(wèn)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),一般用來(lái)快速判斷一個(gè)元素是否出現(xiàn)在集合中。
??????? 哈希碰撞的兩種解決方法:拉鏈法 、線性探測(cè)法
| std::set | 紅黑樹 | 有序 | 否 | 否 | O(logn) | O(logn) |
| std::multiset | 紅黑樹 | 有序 | 是 | 否 | O(logn) | O(logn) |
| std::unordered_set | 哈希表 | 無(wú)序 | 否 | 否 | O(1) | O(1) |
??
題目:
- easy
242. 有效的字母異位詞
349. 兩個(gè)數(shù)組的交集
1. 兩數(shù)之和
-
midding
?15. 三數(shù)之和
18. 四數(shù)之和
4. 字符串
??????? 字符串是由若干字符組成的有限序列,也可以理解為一個(gè)字符數(shù)組。
- easy
344. 反轉(zhuǎn)字符串
541. 反轉(zhuǎn)字符串 II
28. 實(shí)現(xiàn) strStr()
?459. 重復(fù)的子字符串
- ?midding
151. 顛倒字符串中的單詞
5. 棧與隊(duì)列
隊(duì)列:先進(jìn)先出
棧?? :先進(jìn)后出
題目:
- easy
232. 用棧實(shí)現(xiàn)隊(duì)列
225. 用隊(duì)列實(shí)現(xiàn)棧
20. 有效的括號(hào)
- midding
150. 逆波蘭表達(dá)式求值
347. 前 K 個(gè)高頻元素
- hard
239. 滑動(dòng)窗口最大值
42. 接雨水
6. 二叉樹
二叉樹的種類:滿二叉樹、完全二叉樹、二叉搜索樹、平衡二叉搜索樹
?二叉樹的遍歷:深度優(yōu)先 廣度優(yōu)先(遞歸:棧? 隊(duì)列)
遞歸三部曲:
(1)確定遞歸函數(shù)的參數(shù)和返回值
(2)確定遞歸終止條件
(3)確定單層遞歸的邏輯
題目:
144. 二叉樹的前序遍歷
94. 二叉樹的中序遍歷
145. 二叉樹的后序遍歷
102. 二叉樹的層序遍歷
226. 翻轉(zhuǎn)二叉樹
101. 對(duì)稱二叉樹
104. 二叉樹的最大深度
111. 二叉樹的最小深度
110. 平衡二叉樹
112. 路徑總和
257. 二叉樹的所有路徑
113. 路徑總和 II
106. 從中序與后序遍歷序列構(gòu)造二叉樹
105. 從前序與中序遍歷序列構(gòu)造二叉樹
98. 驗(yàn)證二叉搜索樹
617. 合并二叉樹
700. 二叉搜索樹中的搜索
530. 二叉搜索樹的最小絕對(duì)差
501. 二叉搜索樹中的眾數(shù)
236. 二叉樹的最近公共祖先
235. 二叉搜索樹的最近公共祖先
701. 二叉搜索樹中的插入操作
450. 刪除二叉搜索樹中的節(jié)點(diǎn)
669. 修剪二叉搜索樹
108. 將有序數(shù)組轉(zhuǎn)換為二叉搜索樹
7. 回溯算法
?(1)確定回溯函數(shù)的返回值和參數(shù)
(2)確定回溯函數(shù)的終止條件
(3)確定回溯函數(shù)的遍歷過(guò)程
//回溯算法的循環(huán): // 1. 求排列for(int i=0; ...) // 2. 求組合for(int i=startInd; ...) //note: 要注意去重問(wèn)題題目:
77. 組合
216. 組合總和 III
17. 電話號(hào)碼的字母組合
39. 組合總和
40. 組合總和 II
131. 分割回文串
93. 復(fù)原 IP 地址
78. 子集
491. 遞增子序列
46. 全排列
47. 全排列 II
51. N 皇后
37. 解數(shù)獨(dú)
8. 貪心算法
?解題步驟:
(1)將問(wèn)題分解為若干子問(wèn)題
(2)找出貪心策略
(3)求解每一個(gè)子問(wèn)題的最優(yōu)解
(4)將局部最優(yōu)堆疊成全局最優(yōu)
題目:
455. 分發(fā)餅干
376. 擺動(dòng)序列
53. 最大子數(shù)組和
122. 買賣股票的最佳時(shí)機(jī) II
55. 跳躍游戲
45. 跳躍游戲 II
134. 加油站
135. 分發(fā)糖果
860. 檸檬水找零
452. 用最少數(shù)量的箭引爆氣球
56. 合并區(qū)間
738. 單調(diào)遞增的數(shù)字
9. 動(dòng)態(tài)規(guī)劃
動(dòng)態(tài)規(guī)劃“五部曲”
(1)確定dp及下標(biāo)的含義
(2)確定遞推公式
(3)初始化dp
(4)確定遍歷順序
(5)舉例推導(dǎo)dp
//0-1背包的核心代碼 for(int i=0; i<weight.size(); ++i){//容量從大到小遍歷,保證每個(gè)物品僅添加一次for(int j=bagWeight; j>=weight[i]; --j){dp[j] = max(dp[j], dp[j-weight[i]]+value[i]);} }//完全背包核心代碼 for(int i=0; i<weight.size(); ++i){//容量從小到大遍歷,保證每個(gè)物品可添加無(wú)數(shù)次for(int j=weight[i]; j<=bagWeight; ++j){dp[j] = max(dp[j], dp[j-weight[i]]+value[i]);} }//1. 求最大 dp[j] = max(dp[j], dp[j-weight[i]]+value[i]); //2. 求組合 dp[j] += dp[j-nums[i]] //3. 求排列 dp[j] += dp[j-nums[i]] //求組合數(shù),外層循環(huán)遍歷物品,內(nèi)層循環(huán)遍歷背包 //求排列數(shù),外層循環(huán)遍歷背包,內(nèi)層循環(huán)遍歷物品題目:
509. 斐波那契數(shù)
70. 爬樓梯
746. 使用最小花費(fèi)爬樓梯
62. 不同路徑
63. 不同路徑 II
343. 整數(shù)拆分
96. 不同的二叉搜索樹
416. 分割等和子集
494. 目標(biāo)和
474. 一和零
518. 零錢兌換 II
377. 組合總和 Ⅳ
322. 零錢兌換
279. 完全平方數(shù)
139. 單詞拆分
121. 買賣股票的最佳時(shí)機(jī)
122. 買賣股票的最佳時(shí)機(jī) II
123. 買賣股票的最佳時(shí)機(jī) III
188. 買賣股票的最佳時(shí)機(jī) IV
309. 最佳買賣股票時(shí)機(jī)含冷凍期
714. 買賣股票的最佳時(shí)機(jī)含手續(xù)費(fèi)
300. 最長(zhǎng)遞增子序列
674. 最長(zhǎng)連續(xù)遞增序列
718. 最長(zhǎng)重復(fù)子數(shù)組
1143. 最長(zhǎng)公共子序列
1035. 不相交的線
392. 判斷子序列
115. 不同的子序列
583. 兩個(gè)字符串的刪除操作
72. 編輯距離
647. 回文子串
516. 最長(zhǎng)回文子序列
10. 其他
-
二分查找
33. 搜索旋轉(zhuǎn)排序數(shù)組d
-
遞歸
234. 回文鏈表
-
并查集
劍指 Offer II 116. 省份數(shù)量
-
拓?fù)渑判?/strong>
207. 課程表
?
-
深度優(yōu)先
236. 二叉樹的最近公共祖先
543. 二叉樹的直徑
78. 子集
參考文獻(xiàn):《代碼隨想錄lu 跟著Carlarl學(xué)算法》 孫秀洋
總結(jié)
以上是生活随笔為你收集整理的leetcode分类刷题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 唯众职教学生实训系统
- 下一篇: 浅析关于建筑行业 内部管理系统