【劍指Offer】劍指offer題目匯總


  本文為《劍指Offer》刷題筆記的總結篇,花了兩個多月的時間,將牛客網上《劍指Offer》的66道題刷了一遍,以博客的形式整理了一遍,這66道題屬於相對基礎的算法題目,對於刷題練手是很好的實踐,接下來會繼續回到LeetCode,爭取每天拿出一個小時,刷一到兩道題。

  本文主要對這66道題做一個總結,整體來看,這66道題,涉及到了常用的數據結構:數組、字符串、鏈表、樹、二叉樹、棧、隊列,還有在編程中經常用到的數據操作和算法:循環、遞歸、查找、排序、回溯、動態規划、位運算。以下對這66道題做一個歸類。

  從這些題目中,我們可以學習到以下一些解題經驗

  • 首先要真正理解題意,對於一些不確定的情況,比如輸入輸出格式,可以追問。
  • 思考要全面,對於特殊情況,比如指針為null,輸入為空等等情況,要充分考慮,保證代碼的完整性和魯棒性。
  • 當遇到一個比較復雜的問題時,可以通過畫圖、舉例或者分解來考慮,從具體的實例中總結普遍規律。
  • 注重效率的考量,這66道題用蠻力法解決可能都不是很難,但是我們需要考慮的是時間效率和空間效率的平衡,以空間換時間有時候是一個不錯的選擇。
  • 常用數據結構和數據操作是基礎,要重點掌握,如樹的遍歷,排序,查找,遞歸等操作,在題目中反復用到,要深刻理解算法思想。

數組(共12道題目):

【劍指Offer】1、二維數組中的查找

【劍指Offer】6、旋轉數組的最小數字

【劍指Offer】13、調整數組順序使奇數位於偶數前面

【劍指Offer】19、順時針打印矩陣

【劍指Offer】28、數組中出現次數超過一半的數字

【劍指Offer】30、連續子數組的最大和

【劍指Offer】32、把數組排成最小的數

【劍指Offer】35、數組中的逆序對

【劍指Offer】37、數字在排序數組中出現的次數

【劍指Offer】40、數組中只出現過一次的數字

【劍指Offer】50、數組中的重復數字

【劍指Offer】51、構建乘積數組


字符串(共9道題目):

【劍指Offer】2、替換空格

【劍指Offer】27、字符串的排列

【劍指Offer】34、第一個只出現一次的字符

【劍指Offer】43、左旋轉字符串

【劍指Offer】44、反轉單詞序列

【劍指Offer】49、把字符串轉換為整數

【劍指Offer】52、正則表達式匹配

【劍指Offer】53、表示數值的字符串

【劍指Offer】54、字符流中第一個不重復的字符


鏈表(共8道題目):

【劍指Offer】3、從尾到頭打印鏈表

【劍指Offer】14、鏈表中倒數第K個結點

【劍指Offer】15、反轉鏈表

【劍指Offer】16、合並兩個排序的鏈表

【劍指Offer】25、復雜鏈表的復制

【劍指Offer】36、兩個鏈表的第一個公共結點

【劍指Offer】55、鏈表中環的入口結點

【劍指Offer】56、刪除鏈表中重復的結點


樹和二叉樹(共15道):

【劍指Offer】4、重建二叉樹

【劍指Offer】17、樹的子結構

【劍指Offer】18、二叉樹的鏡像

【劍指Offer】22、從上往下打印二叉樹

【劍指Offer】23、二叉搜索樹的后序遍歷序列

【劍指Offer】24、二叉樹中和為某一值的路徑

【劍指Offer】26、二叉搜索樹與雙向鏈表

【劍指Offer】38、二叉樹的深度

【劍指Offer】39、平衡二叉樹

【劍指Offer】57、二叉樹的下一個結點

【劍指Offer】58、對稱的二叉樹

【劍指Offer】59、按之字形順序打印二叉樹

【劍指Offer】60、把二叉樹打印成多行

【劍指Offer】61、序列化二叉樹

【劍指Offer】62、二叉搜索樹的第K個結點


回溯法(共2道題目):

【劍指Offer】65、矩陣中的路徑

【劍指Offer】66、機器人的運動范圍

棧和隊列(共3道題目):

【劍指Offer】5、用兩個棧實現隊列

【劍指Offer】20、包含min函數的棧

【劍指Offer】21、棧的壓入彈出序列


遞歸和循環(共4道題目):

【劍指Offer】7、斐波那契數列

【劍指Offer】8、跳台階

【劍指Offer】9、變態跳台階

【劍指Offer】10、矩形覆蓋


數學(共3道題目):

【劍指Offer】12、數值的整數次方

【劍指Offer】47、求1+2+3+···+n

【劍指Offer】48、不用加減乘除做加法


其他(共10道題目):

【劍指Offer】11、二進制中1的個數

【劍指Offer】29、最小的K個數

【劍指Offer】31、從1到n整數中1出現的次數

【劍指Offer】33、丑數

【劍指Offer】41、和為S的連續正數序列

【劍指Offer】42、和為S的兩個數字

【劍指Offer】45、撲克牌順子

【劍指Offer】46、圓圈中最后剩下的數

【劍指Offer】63、數據流中的中位數

【劍指Offer】64、滑動窗口的最大值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM