《剑指offer》题目说明
劍指offer推薦刷題地址:
- Leetcode: https://leetcode-cn.com/problemset/lcof (官方授權)
- 牛客網:https://www.nowcoder.com/ta/coding-interviews
?
劍指offer 剖析了80個典型的編程面試題,系統整理基礎知識、代碼質量、解題思路、優化效率和綜合能力這5個面試要點。但是牛客網上的66題。
如果是單純的面試需求,劍指offer的優先級肯定是在Leetcode之前,總的說它有三個優點:
- 1.很可能在面試中出現原題
- 2.約66題,題量少,但是涵蓋的內容較全
- 3.能培養一個良好的刷題習慣
它的缺點是:
- 1.只有66題,刷著容易過擬合
- 2.動態規劃的題比較少,因此需要在Leetcode上專項訓練。
算法題主要分成數據結構和具體算法部分
?
二、總結
現對這66道題目進行了粗略的劃分,整理如下:
鏈表(8道):
劍指Offer(三):從尾到頭打印鏈表
劍指Offer(十四):鏈表中倒數第k個結點
劍指Offer(十五):反轉鏈表
劍指Offer(十六):合并兩個排序的鏈表
劍指Offer(二十五):復雜鏈表的復制
劍指Offer(三十六):兩個鏈表的第一個公共結點
劍指Offer(五十五):鏈表中環的入口結點
劍指Offer(五十六):刪除鏈表中重復的結點
二叉樹(12道):
劍指Offer(四):重建二叉樹
劍指Offer(十七):樹的子結構
劍指Offer(十八):二叉樹的鏡像
劍指Offer(二十二):從上往下打印二叉樹
劍指Offer(二十四):二叉樹中和為某一值的路徑
劍指Offer(三十八):二叉樹的深度
劍指Offer(三十九):平衡二叉樹
劍指Offer(五十七):二叉樹的下一個結點
劍指Offer(五十八):對稱的二叉樹
劍指Offer(五十九):按之字順序打印二叉樹
劍指Offer(六十):把二叉樹打印成多行
劍指Offer(六十一):序列化二叉樹
二叉搜索樹(3道):
劍指Offer(二十三):二叉搜索樹的后序遍歷序列
劍指Offer(二十六):二叉搜索樹與雙向鏈表
劍指Offer(六十二):二叉搜索樹的第k個結點
數組(12道):
劍指Offer(一):二維數組中的查找
劍指Offer(六):旋轉數組的最小數字
劍指Offer(十三):調整數組順序使奇數位于偶數前面
劍指Offer(十九):順時針打印矩陣
劍指Offer(二十八):數組中出現次數超過一半的數字
劍指Offer(三十):連續子數組的最大和? ?動態規劃
劍指Offer(三十二):把數組排成最小的數
劍指Offer(三十五):數組中的逆序對? ?排序
劍指Offer(三十七):數字在排序數組中出現的次數
劍指Offer(四十):數組中只出現一次的數字? 位運算
劍指Offer(五十):數組中重復的數字
劍指Offer(五十一):構建乘積數組
字符串(9道):
劍指Offer(二):替換空格
劍指Offer(二十七):字符串的排列
劍指Offer(三十四):第一個只出現一次的字符
劍指Offer(四十三):左旋轉字符串
劍指Offer(四十四):翻轉單詞順序序列
劍指Offer(四十九):把字符串轉換成整數
劍指Offer(五十二):正則表達式匹配
劍指Offer(五十三):表示數值的字符串
劍指Offer(五十四):字符流中第一個不重復的字符
棧和隊列(3道):
劍指Offer(五):用兩個棧實現隊列
劍指Offer(二十):包含min函數的棧
劍指Offer(二十一):棧的壓入、彈出序列
遞歸和循環(4道):
劍指Offer(七):裴波那契數列
劍指Offer(八):跳臺階
劍指Offer(九):變態跳臺階
劍指Offer(十):矩形覆蓋
回溯法(2道):
劍指Offer(六十五):矩陣中的路徑
劍指Offer(六十六):機器人的運動范圍
位運算(2道):
劍指Offer(十一):二進制中1的個數
劍指Offer(十二):數值的整數次方
數學(2道):
劍指Offer(四十七):求1+2+3+…+n
劍指Offer(四十八):不用加減乘除的加法
其他(9道):
劍指Offer(二十九):最小的K個數? (堆排序, 快速排序)
劍指Offer(三十一):整數中1出現的次數(從1到n整數中1出現的次數)
劍指Offer(三十三):丑數
劍指Offer(四十一):和為S的連續正數序列
劍指Offer(四十二):和為S的兩個數字
劍指Offer(四十五):撲克牌順子
劍指Offer(四十六):孩子們的游戲(圓圈中最后剩下的數)
劍指Offer(六十三):數據流中的中位數
劍指Offer(六十四):滑動窗口的最大值
?
Github項目:
?
據結構和DP在面試中手寫代碼的幾率比較高,因此筆者目前的刷題節奏主要是:
劍指offer->Leetcode動態規劃->面試前再過一遍劍指offer
每個人基礎不一樣,不過我覺得刷題還是要全職專項的刷。
有個重要的點是:每道題做完一定要去討論區!
討論區有非常精簡的大神級代碼,你好不容易AC了一道題準備去討論區吹(裝)水(逼),點開一看,“握草,還可以這樣”。
思考為什么他可以寫出這么好的代碼,把每道題的思路理解后用筆記本記錄下來,爭取刷到融會貫通,即看見有個題能自動歸類到某個方面,這樣有一定好處。面試最重要的是讓面試官日后能愿意與你以后一起工作,因此溝通交流非常重要。比如有時候面試需要交流,看著像是一道排序的題做不出來,就可以跟面試官交流:“我有幾個不成熟的想法,一排序,二動態規劃,三是直接搜索算法”,面試官可能就給個提示:“你先用排序試試吧“。
?
?
https://github.com/shenweichen/coding_interviews
https://cuijiahua.com/blog/2018/02/basis_67.html
https://www.jianshu.com/p/53f6bf6f8d50
?
?
總結
以上是生活随笔為你收集整理的《剑指offer》题目说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux中x11是什么
- 下一篇: [二叉树]序列化二叉树 (剑指offer