介紹 用JavaScript刷完了劍指offer,故總結下每道題的難度、解決關鍵點,詳細題解代碼可以點鏈接進去細看。 關於JS刷題的技巧可以看我之前的這篇JS刷題總結。 劍指offer的題目在牛客網上可以看:https://www.nowcoder.com/ta/coding-interviews ...
介紹
用JavaScript刷完了劍指offer,故總結下每道題的難度、解決關鍵點,詳細題解代碼可以點鏈接進去細看。
關於JS刷題的技巧可以看我之前的這篇JS刷題總結。
劍指offer的題目在牛客網上可以看:https://www.nowcoder.com/ta/coding-interviews
所有題目的代碼已經上傳到了github上:https://github.com/14glwu/FEInterviewBox/tree/master/%E5%89%91%E6%8C%87offer
目錄
題目=》難易程度=》關鍵詞
(1)二位數組的查找 簡單 有順序、左下角做起始點
(2)替換空格 簡單 正則
(3)從尾到頭列印鏈表 簡單 棧
(4)重建二叉樹 中等 畫圖、遞歸、註意下標
(5)用兩個棧實現隊列 簡單 註意判斷條件
(6)旋轉數組中的最小數字 簡單 二分法
(7)斐波那契數列 簡單 動態規劃
(8)跳臺階 簡單 動態規劃
(9)變態跳臺階 中等 類似斐波那契、數學分析
(10)矩形覆蓋 簡單偏難 類似斐波那契
(11)二進位中1的個數 中等 位運算n=n&n-1
(12)數值的整數次方 中等 數學分析、位運算
(13)調整數組順序使奇數位於偶數前面 簡單 兩個變數作為奇數和偶數的下標
(14)鏈表中倒數第k個節點 簡單 雙指針法
(15)反轉鏈表 簡單 三個指針
(16)合併兩個排序的鏈表 簡單 遞歸
(17)樹的子結構 簡單偏難 註意判斷條件、遞歸
(18)二叉樹的鏡像 簡單 遞歸
(19)順時針列印矩陣 中等偏難 註意判斷條件、遞歸 || 模擬魔方法
(20)包含min函數的棧 中等 輔助棧
(21)棧的壓入、彈出序列 中等 輔助棧
(22)從上往下列印二叉樹 簡單 廣度遍歷、隊列
(23)二叉樹的後續遍歷序列 中等 畫圖
(24)二叉樹和為某一值的遍歷序列 中等 深度遍歷、遞歸
(25)複雜鏈表的複製 難 map保存<N,N'> || N->N'得S->S‘
(26)二叉搜索樹與雙向鏈表 中等偏難 遞歸、中序遍歷
(27)字元串的排列 難 回溯法 || 遞歸全排列法
(28)數組中出現次數超過一半的數 中等 partion法 || times變數變化法
(29)最小的k個數 中等 partion法
(30)連續子數組的最大值 中等 找規律、動態規劃、註意判斷條件
(31)1~n整數中1出現的次數 中等 位運算 || 數學分析
(32)把數組排成最小的數 簡單偏難 改變排序規則
(33)醜數 難 動態規劃、註意判斷條件
(34)第一個只出現一次的字元 哈希表記錄
(35)數組中的逆序對 難+ 基於歸併排序、臨時數組
(36)兩個鏈表中的第一個公共節點 簡單 雙指針法
(37)數字在排序數組中出現的次數 簡單偏難 二分法改造
(38)二叉樹的深度 簡單 遞歸
(39)平衡二叉樹 簡單 遞歸
(40)數組中只出現一次的數字 簡單 indexOf || map記錄 || 異或
(41)和為S的連續正數序列 中等 數學分析
(42)和為S的字元串 簡單 雙指針
(43)左旋轉字元串 簡單 裁剪拼接
(44)單次翻轉序列 簡單 轉數組,對每項反序
(45)撲克牌順子 中等 註意題目條件、位運算判斷數字重覆
(46)孩子們的游戲 難 數學分析得出公式 || 畫圖按題目做、註意下標
(47)求1+2+3+...+n 中等 位運算、遞歸
(48)不用加減乘除做加法 中等 位運算
(49)把字元串轉成整數 中等 位運算
(50)數組中重覆的數字 中等 將值放到對應位置上
(51)構建乘積數組 中等偏上 藉助中間變數存儲後面的乘積
(52)正則表達式的匹配 難 註意判斷條件、遞歸
(53)表示數值的字元串 中等 正則
(54)字元流中第一個不重覆的數字 中等 map記錄 || indexOf法
(55)鏈表中環的入口節點 中等 雙指針法、數學分析
(56)刪除鏈表中重覆的節點 中等 加頭節點、註意多個重覆
(57)二叉樹的下一個節點 中等 畫圖、分析各種情況
(58)對稱的二叉樹 中等 遞歸、對稱遍歷
(59)按之字形順序列印二叉樹 難 廣度遍歷、兩個棧
(60)把二叉樹列印成多行 中等偏難 隊列+兩個記錄變數
(61)序列化二叉樹 中等 數組代表流、遞歸
(62)二叉搜索樹的第k個節點 中等 中序遍歷+計數變數
(63)數據流的中位數 中等 partion法 || 維持排序 || 排序鏈表法 || AVL樹 || 最大堆和最小堆
(64)滑動視窗中的最大值 難 改變參考對象、雙端隊列、存下標
(65)矩陣中的路徑 中等 回溯法
(66)機器人的運動範圍 中等 回溯法