劍指Offer-數據結構與算法題目(Java實現)

1、棧與隊列

【劍指Offer-5】兩個棧實現隊列
【劍指Offer-20】包含min函數的棧
【劍指Offer-21】棧的壓入、彈出序列
【劍指Offer-64】滑動窗口的最大值
【實現一個棧】
【實現一個隊列】
【包含min/max函數的棧】
【兩個隊列實現一個棧】


2、鏈表

【劍指Offer-3】從尾到頭打印鏈表
【劍指Offer-14】鏈表中倒數k個結點&中間結點
【劍指Offer-15】反轉鏈表
【劍指Offer-16】合併兩個排序的鏈表
【劍指Offer-25】複雜鏈表的複製
【劍指Offer-36】兩個鏈表的第一個公共節點】
【劍指Offer-55】鏈表中環的入口結點
【劍指Offer-56】刪除鏈表中重複的結點
【按k步反轉鏈表】
【單鏈表冒泡排序】
【單鏈錶快速排序】
【雙向鏈表快速排序】
【o(1)刪除鏈表節點】


3、數組

【劍指Offer-1】二維數組中的查找
【劍指Offer-6】旋轉數組的最小數字
【劍指Offer-13】調整數組順序使奇數位於偶數前面
【劍指Offer-19】順時針打印矩陣
【劍指Offer-28】數組中出現次數超過一半的數字
【劍指Offer-29】最小的K個數
【劍指Offer-30】連續子數組的最大和
【劍指Offer-32】把數組排成最小的數
【劍指Offer-35】數組中的逆序對
【劍指Offer-37】數字在排序數組中出現的次數
【劍指Offer-40】數組中只出現一次的數字
【劍指Offer-41】和爲S的連續正數序列
【劍指Offer-42】和爲S的兩個數字
【劍指Offer-45】撲克牌順子
【劍指Offer-46】孩子們的遊戲(圓圈中最後剩下的數/約瑟夫環)
【劍指Offer-47】求1+2+3+…+n
【劍指Offer-50】數組中重複的數字
【劍指Offer-51】構建乘積數組
【劍指Offer-63】數據流中的中位數
【冒泡、快排、歸併排序】
【無序數組的中位數(快排、最小堆)】
【取最大的k個數(topK)(最小堆)】


4、字符串

【劍指Offer-2】替換空格
【劍指Offer-27】字符串的排列
【劍指Offer-34】第一個只出現一次的字符
【劍指Offer-43】左旋轉字符串
【劍指Offer-44】翻轉單詞順序列
【劍指Offer-49】把字符串轉換成整數
【劍指Offer-52】正則表達式匹配
【劍指Offer-53】表示數值的字符串
【劍指Offer-54】字符流中第一個不重複的字符
【反轉字符串或句子】
【最小覆蓋子串】


5、樹

【劍指Offer-4】重建二叉樹
【劍指Offer-17】樹的子結構
【劍指Offer-18】二叉樹的鏡像
【劍指Offer-22】從上往下打印二叉樹
【劍指Offer-23】二叉搜索樹的後序遍歷序列
【劍指Offer-24】二叉樹中和爲某一值的路徑
【劍指Offer-26】二叉搜索樹與雙向鏈表
【劍指Offer-38/39】二叉樹深度、平衡二叉樹
【劍指Offer-57】二叉樹的下一個結點
【劍指Offer-58】對稱的二叉樹
【劍指Offer-59】按之字形順序打印二叉樹
【劍指Offer-60】把二叉樹打印成多行
【劍指Offer-61】序列化二叉樹
【劍指Offer-62】二叉搜索樹的第k個結點
【先、中、後序遍歷二叉樹(遞歸、非遞歸)】


6、位運算

【劍指Offer-11】二進制中1的個數
【劍指Offer-12】數值的整數次方
【劍指Offer-48】不用加減乘除做加法


7、回溯算法

【劍指Offer-65】矩陣中的路徑
【劍指Offer-66】機器人的運動範圍


8、其他

【劍指Offer-7/8】斐波那契數列、跳臺階、兔子數量問題(遞歸、非遞歸)
【劍指Offer-9】變態跳臺階
【劍指Offer-10】矩陣覆蓋
【劍指Offer-31】整數中1出現的次數
【劍指Offer-33】醜數
【兩個大整數相加】
【概率問題 p 1-p】
【水仙花數】
【折半查找】
【Java構建LRUCache&MaxHeap】


時間&空間複雜度分析方法

參考:時間複雜度&空間複雜度分析

 
 
 
 

題目來源

牛客網-劍指Offer

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章