校招中最基礎的一環,筆試與白板擼算法java
CS中最基本的能力,這方面的準備十分必要,可是準備過程一定十分痛苦python
雖常言道水滴石穿,可是多少小河小溪在石穿以前乾涸!面試
-----------------------------------算法
天天2-3道算法題,完不成就晚上加班數組
-----------------------------------數據結構
一次總計花一個小時時間學習:函數
1.找到對應知識點,梳理一遍,弄清楚難點學習
2.刷15-20分鐘小題,來檢測本身這塊的掌握狀況編碼
3.刷20-30分鐘對應的算法題blog
----------------------------------------------
結合算法導論,啊哈算法,王道數據結構等書籍;
1-線性表:鏈表的各類操做(雙鏈表的插入,刪除 手寫 );java中的應用; (6.7 鏈表,牛客作題)
關於刪除鏈表節點:先解決當前節點後面的,再解決前面的
棧:定義,基本操做(初始化,判斷爲空,進棧,出棧,讀棧頂元素,),順序棧和鏈棧;應用
1-隊列:定義,基本操做(初始化,判斷爲空,入隊,出隊,),順序存儲和鏈式存儲,雙端隊列;應用
數組與矩陣:數組的各類基本操做,矩陣的壓縮存儲
1-字符串:字符串的基本操做與實現
堆:定義與基本操做,應用
1-樹:二叉樹的定義,基本性質,順序存儲,鏈式存儲,三種遍歷方法,樹與森林;樹的應用:二叉排序樹的定義,查找,插入,刪除;平衡二叉樹的定義,插入,;哈夫曼樹的定義構建;哈夫曼編碼; b樹,b+樹,紅黑樹;
1-圖:定義,概念,存儲;兩種遍歷;圖的應用:最小生成樹,最短路徑,拓撲排序,關鍵路徑;
1-查找:順序查找,分塊查找,折半查找,B樹,b+樹;hash表;字符串模板匹配; 算法的分析和應用
哈希表,對哈希表的細節要求很高,好比哈希表的衝突檢測、哈希函數經常使用實現、算法複雜度;好比百度二面就讓我寫一個哈希表插入元素算法,元素類型是任意類型。
1-排序:插入類,直接插入,折半插入,希爾排序; 交換類,冒泡,快速排序; 選擇排序:簡單選擇,堆排序; 歸併排序,基數排序,外部排序; 各類排序方法的總結;
遞歸分治
貪心
動態規劃
回溯
分支限界
沒有什麼筆試是刷幾十道題不能解決的,若是不想那就再刷幾十遍
不會的算法題