首頁>技術>

增強演算法能力,不是一朝一夕的事,需要持久的付出努力,同時也要經常思考、反思和總結,不斷去揣摩資料結構和演算法的巧妙。

過去幾個月,演算法刷題日記裡 600多位老鐵,一起走過100天刷題,今天做個簡單總結。

刷題練習的資料結構,包括:

1. 一維結構:線性順序儲存的陣列,線性亂序儲存的連結串列,按桶裝入陣列的雜湊結構,只在一頭出入的特殊陣列棧(包括單調棧),佇列

2. 二維:非線性的二叉樹;具有優先順序、根要麼最大或最小的堆結構,也是特殊的一種二叉樹

3. 以及經常用到的雙指標及特殊的快慢雙指標:

基於以上資料結構,經常涉及到的演算法有如下這些,其中:

1. 基礎思維部分最符合我們的思考習慣;

2. 遞迴思維常和數學歸納分析相關;

3. 分治思維就是劃大區間為小區間,分別治理後,重新合併的思維;

4. 雜湊比較好理解,O(1)找到某個鍵的對應值;

5. 動態規劃前100天並沒有重點訓練,因為它是所有演算法中最需要訓練的思維之一,狀態轉移方程並不是那麼容易找到,但又是加速演算法的常用技巧之一,AI訓練模型的反向傳播演算法,強化學習智慧體在環境中的學習過程,都是動態規劃思維的具體應用;

6. 貪心求得最優解的場景其實不太多,往往實際中用來求得近似解;

7. 位運算有時解決問題乾淨利落;

8. 字首和是一類特殊的結構,注意體會字首和的解體技巧

不斷揣摩,方能舉一反三。

7
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • ‘單例設計’模式-懶漢式和餓漢式