左程雲在牛客網上發帖子說過建議 80% 備戰面試的時間放在資料結構和演算法上,剩下的 20% 的時間再放在基礎知識上。cyc2018 在小專欄裡也說過 100 道 leetcode 會對面試幫助很大。雖然來來回回看了好些遍左程雲那個初級演算法課程,但是有的地方還是記不牢,準備面試的時間大部分還是花在了閱讀和理解知識點上。我覺得還是把重點放回來吧,把左程雲演算法課程中的題目總結出來,再加上一些 leetcode 高頻題目,爭取讓自己的題量達到 100 題的標準,然後再去理解知識點,這樣備戰面試的效果應該會更好。
小和問題
逆序對問題
隨時找到資料流的中位數
給乙個無序陣列,求排序之後相鄰兩數的最大差值,要求時間複雜度 o(n)
用陣列結構實現大小固定的佇列
用陣列結構實現大小固定的棧
設計乙個有 getmin 功能的棧
用佇列結構實現棧結構
用棧結構實現佇列結構
貓狗佇列
轉圈列印矩陣
將正方形矩陣順時針轉動 90°
「 之 」 字形列印矩陣
在行列都排好序的矩陣中找指定數
列印兩個有序鍊錶的公共部分
判斷乙個鍊錶是否為回文結構
反轉單向鍊錶和雙向鍊錶
將單向鍊錶按某值劃分為左邊小、中間相等、右邊大的形式
複製含有隨機指標節點的鍊錶
返回單鏈表入環的第乙個節點
兩個單鏈表相交的一系列問題
分別用遞迴和非遞迴方式實現二叉樹先序、中序和後序遍歷
摺紙問題
在二叉樹中找到乙個節點的後繼節點
二叉樹的序列化和反序列化
判斷一棵二叉樹是否是平衡二叉樹
判斷一棵二叉樹是否是搜尋二叉樹
統計完全二叉樹的節點數
設計 randompool 結構
認識布隆過濾器
一致性雜湊演算法的基本原理
並查集的實現
島問題字首樹的實現
拼接所有字串產生字典順序最小的字串
分金條的最小花費
做專案的最大收益問題
到二維陣列右下角的最小路徑和
奶牛問題
圖的寬度優先與深度優先遍歷
圖的拓撲排序
最小生成樹 k 演算法和 p 演算法
反轉二叉樹
二叉樹每層值最大的節點
微軟演算法100道題
題目 n個數字 0,1,n 1 形成乙個圓圈,從數字0開始,每次從這個圓圈中刪除第m個數字 第乙個為當前數字本身,第二個為當前數字的下乙個數字 當乙個數字刪除後,從被刪除數字的下乙個繼續刪除第m個數字。求出在這個圓圈中剩下的最後乙個數字。思路 這道題的思路。分析 既然題目有乙個數字圓圈,很自然的想法...
微軟演算法100道題 查詢最小的k個元素
題目 輸入n個整數,輸出其中最小的k個。例如輸入1,2,3,4,5,6,7和8這8個數字,則最小的4個數字為1,2,3和4。答案 1 這個時間複雜度為o n 從頭遍歷一遍,將這些數對映到相應的陣列上,比如1,就對映到result 1 5就對映到result 5 然後result陣列從後往前數k個,就...
一道演算法題
兩個燒杯,乙個放糖乙個放鹽,用勺子舀一勺糖到鹽,攪拌均勻,然後舀一勺混合 物會放糖的燒杯,問你兩個燒杯哪個雜質多?一樣多吧 對的 為啥?是不是因為 糖和鹽本來就是均勻的 因為,就算不攪拌均,你放一勺過去,那邊放一勺不含雜質的過來,那麼都是一勺雜之 如果攪拌均勻的話也是一樣 小依 21 45 32 也...