棧和隊列部分(10)
-
設計一個有getMin功能的棧(士★☆☆☆)
-
由兩個棧組成的隊列(尉★★☆☆)
-
如何僅用遞歸函數和棧操作逆序一個棧(尉★★☆☆)
-
貓狗隊列(士★☆☆☆)
-
用一個棧實現另一個棧的排序(士★☆☆☆)
-
用棧來求解漢諾塔問題(校★★★☆)
-
生成窗口最大值數組(尉★★☆☆)
-
構造數組的MaxTree(校★★★☆)
-
求最大子矩陣的大小(校★★★☆)
-
最大值減去最小值小于或等于num的子數組數量(校★★★☆)
鏈表問題(20)
-
打印兩個有序鏈表的公共部分(士★☆☆☆)
-
在單鏈表和雙鏈表中刪除倒數第K 個節點(士★☆☆☆)
-
刪除鏈表的中間節點和a/b 處的節點(士★☆☆☆)
-
反轉單向和雙向鏈表(士★☆☆☆)
-
反轉部分單向鏈表(士★☆☆☆)
-
環形單鏈表的約瑟夫問題(原問題:士★☆☆☆進階:校★★★☆)
-
判斷一個鏈表是否為回文結構(普通解法士★☆☆☆)(進階解法尉★★☆☆)
-
將單向鏈表按某值劃分成左邊小、中間相等、右邊大的形式(尉★★☆☆)
-
復制含有隨機指針節點的鏈表(尉★★☆☆)
-
兩個單鏈表生成相加鏈表(士★☆☆☆)
-
兩個單鏈表相交的一系列問題(將★★★★)
-
將單鏈表的每K個節點之間逆序(尉★★☆☆)
-
刪除無序單鏈表中值重復出現的節點(士★☆☆☆)
-
在單鏈表中刪除指定值的節點(士★☆☆☆)
-
將搜索二叉樹轉換成雙向鏈表(尉★★☆☆)
-
單鏈表的選擇排序(士★☆☆☆)
-
一種怪異的節點刪除方式(士★☆☆☆)
-
向有序的環形單鏈表中插入新節點(士★☆☆☆)
-
合并兩個有序的單鏈表(士★☆☆☆)
-
按照左右半區的方式重新組合單鏈表(士★☆☆☆)
二叉樹問題(24)
-
分別用遞歸和非遞歸方式實現二叉樹先序、中序和后序遍歷(校★★★☆)
-
打印二叉樹的邊界節點(尉★★☆☆)
-
如何較為直觀地打印二叉樹(尉★★☆☆)
-
二叉樹的序列化和反序列化(士★☆☆☆)
-
遍歷二叉樹的神級方法(將★★★★)
-
在二叉樹中找到累加和為指定值的最長路徑長度(尉★★☆☆)
-
找到二叉樹中的最大搜索二叉子樹(尉★★☆☆)
-
找到二叉樹中符合搜索二叉樹條件的最大拓撲結構(校★★★☆)
-
二叉樹的按層打印與ZigZag打印(尉★★☆☆)
-
調整搜索二叉樹中兩個錯誤的節點(原問題:尉★★☆☆)(進階問題:將★★★★)
-
判斷t1 樹是否包含t2 樹全部的拓撲結構(士★☆☆☆)
-
判斷t1 樹中是否有與t2 樹拓撲結構完全相同的子樹(校★★★☆)
-
判斷二叉樹是否為平衡二叉樹(士★☆☆☆)
-
根據后序數組重建搜索二叉樹(士★☆☆☆)
-
判斷一棵二叉樹是否為搜索二叉樹和完全二叉樹(士★☆☆☆)
-
通過有序數組生成平衡搜索二叉樹(士★☆☆☆)
-
在二叉樹中找到一個節點的后繼節點(尉★★☆☆)
-
在二叉樹中找到兩個節點的最近公共祖先(原問題:士★☆☆☆)(進階問題:尉★★☆☆再進階問題:校★★★☆)
-
Tarjan算法與并查集解決二叉樹節點間最近公共祖先的批量查詢問題(校★★★☆)
-
二叉樹節點間的最大距離問題(尉★★☆☆)
-
先序、中序和后序數組兩兩結合重構二叉樹(先序與中序結合士★☆☆☆)(中序與后序結合士★☆☆☆先序與后序結合尉★★☆☆)
-
通過先序和中序數組生成后序數組(士★☆☆☆)
-
統計和生成所有不同的二叉樹(尉★★☆☆)
-
統計完全二叉樹的節點數(尉★★☆☆)
遞歸和動態規劃(17)
-
斐波那契系列問題的遞歸和動態規劃(將★★★★)
-
矩陣的最小路徑和(尉★★☆☆)
-
換錢的最少貨幣數(尉★★☆☆)
-
換錢的方法數(尉★★☆☆)
-
最長遞增子序列(校★★★☆)
-
漢諾塔問題(校★★★☆)
-
最長公共子序列問題(尉★★☆☆)
-
最長公共子串問題(校★★★☆)
-
最小編輯代價(校★★★☆)
-
字符串的交錯組成(校★★★☆)
-
龍與地下城游戲問題(尉★★☆☆)
-
數字字符串轉換為字母組合的種數(尉★★☆☆)
-
表達式得到期望結果的組成種數(校★★★☆)
-
排成一條線的紙牌博弈問題(尉★★☆☆)
-
跳躍游戲(士★☆☆☆)
-
數組中的最長連續序列(尉★★☆☆)
-
N皇后問題(校★★★☆)
字符串問題(23)
-
判斷兩個字符串是否互為變形詞(士★☆☆☆)
-
字符串中數字子串的求和(士★☆☆☆)
-
去掉字符串中連續出現k 個0 的子串(士★☆☆☆)
-
判斷兩個字符串是否互為旋轉詞(士★☆☆☆)
-
將整數字符串轉成整數值(尉★★☆☆)
-
替換字符串中連續出現的指定字符串(士★☆☆☆)
-
字符串的統計字符串(士★☆☆☆)
-
判斷字符數組中是否所有的字符都只出現過一次(按要求1 實現的方法士★☆☆☆)(按要求2 實現的方法尉★★☆☆)
-
在有序但含有空的數組中查找字符串(尉★★☆☆)
-
字符串的調整與替換(士★☆☆☆)
-
翻轉字符串(士★☆☆☆)
-
數組中兩個字符串的最小距離(尉★★☆☆)
-
添加最少字符使字符串整體都是回文字符串(校★★★☆)
-
括號字符串的有效性和最長有效長度(原問題士★☆☆☆)(補充問題尉★★☆☆)
-
公式字符串求值(校★★★☆)
-
0 左邊必有1 的二進制字符串數量(校★★★☆)
-
拼接所有字符串產生字典順序最小的大寫字符串(校★★★☆)
-
找到字符串的最長無重復字符子串(尉★★☆☆)
-
找到被指的新類型字符(士★☆☆☆)
-
最小包含子串的長度(校★★★☆)
-
回文最少分割數(尉★★★☆)
-
字符串匹配問題(校★★★☆)
-
字典樹(前綴樹)的實現(尉★★☆☆)
大數據和空間限制(6)
-
認識布隆過濾器(尉★★☆☆)
-
只用2 GB 內存在20 億個整數中找到出現次數最多的數(士★☆☆☆) .
-
40 億個非負整數中找到沒出現的數(尉★★☆☆)
-
找到100 億個URL 中重復的URL 以及搜索詞匯的top K 問題(士★☆☆☆)
-
40 億個非負整數中找到出現兩次的數和所有數的中位數(尉★★☆☆)
-
一致性哈希算法的基本原理(尉★★☆☆)
位運算(6)
-
不用額外變量交換兩個整數的值(士★☆☆☆)
-
不用任何比較判斷找出兩個數中較大的數(校★★★☆)
-
只用位運算不用算術運算實現整數的加減乘除運算(尉★★☆☆)
-
整數的二進制表達中有多少個1 (尉★★☆☆)
-
在其他數都出現偶數次的數組中找到出現奇數次的數(尉★★☆☆)
-
在其他數都出現k 次的數組中找到只出現一次的數(尉★★☆☆)
數組和矩陣問題(26)
-
轉圈打印矩陣(士★☆☆☆)
-
將正方形矩陣順時針轉動90 °(士★☆☆☆)
-
"之"字形打印矩陣(士★☆☆☆)
-
找到無序數組中最小的k 個數(O(Nlogk)的方法尉★★☆☆)(O(N)的方法將★★★★)
-
需要排序的最短子數組長度(士★☆☆☆)
-
在數組中找到出現次數大于N/K 的數(校★★★☆)
-
在行列都排好序的矩陣中找數(士★☆☆☆)
-
最長的可整合子數組的長度(尉★★☆☆)
-
不重復打印排序數組中相加和為給定值的所有二元組和三元組(尉★★☆☆)
-
未排序正數數組中累加和為給定值的最長子數組長度(尉★★☆☆)
-
未排序數組中累加和為給定值的最長子數組系列問題(尉★★☆☆)
-
未排序數組中累加和小于或等于給定值的最長子數組長度(校★★★☆)
-
計算數組的小和(校★★★☆)
-
自然數數組的排序(士★☆☆☆)
-
奇數下標都是奇數或者偶數下標都是偶數(士★☆☆☆)
-
子數組的最大累加和問題(士★☆☆☆)
-
子矩陣的最大累加和問題(尉★★☆☆)
-
在數組中找到一個局部最小的位置(尉★★☆☆)
-
數組中子數組的最大累乘積(尉★★☆☆)
-
打印N 個數組整體最大的Top K(尉★★☆☆)
-
邊界都是1 的最大正方形大小(尉★★☆☆)
-
不包含本位置值的累乘數組(士★☆☆☆)
-
數組的partition 調整(士★☆☆☆)
-
求最短通路值(尉★★☆☆)
-
數組中未出現的最小正整數(尉★★☆☆)
-
數組排序之后相鄰數的最大差值(尉★★☆☆)
其他問題(34)
-
從5 隨機到7 隨機及其擴展(原問題尉★★☆☆補充問題尉★★☆☆)(進階問題校★★★☆)
-
一行代碼求兩個數的最大公約數(士★★☆☆)
-
有關階乘的兩個問題(原問題尉★★☆☆進階問題校★★★☆)
-
判斷一個點是否在矩形內部(尉★★☆☆)
-
判斷一個點是否在三角形內部(尉★★☆☆)
-
折紙問題(尉★★☆☆)
-
蓄水池算法(尉★★☆☆)
-
設計有setAll功能的哈希表(士★☆☆☆)
-
最大的leftMax與rightMax之差的絕對值(校★★★☆)
-
設計可以變更的緩存結構(尉★★☆☆)
-
設計RandomPool結構(尉★★☆☆)
-
調整[0 ,x)區間上的數出現的概率(士★☆☆☆)
-
路徑數組變為統計數組(校★★★☆)
-
正數數組的最小不可組成和(尉★★☆☆)
-
一種字符串和數字的對應關系(校★★★☆)
-
1 到n 中1 出現的次數(校★★★☆)
-
從N 個數中等概率打印M 個數(士★☆☆☆)
-
判斷一個數是否是回文數(士★☆☆☆)
-
在有序旋轉數組中找到最小值(尉★★☆☆)
-
在有序旋轉數組中找到一個數(尉★★☆☆)
-
數字的英文表達和中文表達(校★★★☆)
-
分糖果問題(校★★★☆)
-
一種消息接收并打印的結構設計(尉★★☆☆)
-
設計一個沒有擴容負擔的堆結構(將★★★★)
-
隨時找到數據流的中位數(將★★★★)
-
在兩個長度相等的排序數組中找到上中位數(尉★★☆☆)
-
在兩個排序數組中找到第K 小的數(將★★★★)
-
兩個有序數組間相加和的TOP K 問題(尉★★☆☆)
-
出現次數的TOP K 問題(原問題尉★★☆☆進階問題校★★★☆)
-
Manacher算法(將★★★★)
-
KMP 算法(將★★★★)
-
丟棋子問題(校★★★☆)
-
畫匠問題(校★★★☆)
-
郵局選址問題(校★★★☆)
題目可多,手打的要抽筋了…題目+答案(有分析有源碼)就是一本完整的書《程序員代碼面試指南 IT名企算法與數據結構題目最優解》,總共有532頁。
最后
針對最近很多人都在面試,我這邊也整理了相當多的面試專題資料,也有其他大廠的面經。希望可以幫助到大家。
下面的面試題答案都整理成文檔筆記。也還整理了一些面試資料&最新2021收集的一些大廠的面試真題(都整理成文檔,小部分截圖),有需要的可以戳這里免費領取
最新整理電子書
,手打的要抽筋了…題目+答案(有分析有源碼)就是一本完整的書《程序員代碼面試指南 IT名企算法與數據結構題目最優解》,總共有532頁。
[外鏈圖片轉存中…(img-BDwb3lri-1625481921458)]
最后
針對最近很多人都在面試,我這邊也整理了相當多的面試專題資料,也有其他大廠的面經。希望可以幫助到大家。
下面的面試題答案都整理成文檔筆記。也還整理了一些面試資料&最新2021收集的一些大廠的面試真題(都整理成文檔,小部分截圖),有需要的可以戳這里免費領取
[外鏈圖片轉存中…(img-p5Jvq99f-1625481921460)]
最新整理電子書