【數據結構與算法】極客算法訓練營 - 1、算法數據結構與算法總覽

數據結構與算法總覽

記錄 極客算法訓練營

  • 職業訓練:拆分知識點、刻意練習、反饋

  • 五步刷題法(五毒神掌)

  • 做算法題的最大誤區:只做一遍

如何有效學習數據結構與算法

預習、互動、練習、分享

1、職業訓練:拆分知識點、刻意練習、反饋

如果想要精通一個領域:分爲三步走

  • Chunk it up 切碎知識點

  • Deliberate Practicing 刻意練習

  • Feedback 反饋(分爲主動式反饋和被動式反饋)

一遍完全不夠的 練習多遍

(1)Chunk it up 切碎知識點

  • 庖丁解牛
  • 脈絡連接

在這裏插入圖片描述

tree 樹

連接 拆分 整合

每一個點突破 、 練好的基本功

分解數據結構和算法

數據結構

在這裏插入圖片描述

一維:

  • 基礎:數組 array (string), 鏈表 linked list
  • 高級:棧 stack, 隊列 queue, 雙端隊列 deque, 集合 set, 映射 map (hash or map), etc…

二維:

  • 基礎:樹tree、圖graph
  • 高級:二叉搜索樹 binary search tree (red-black tree, AVL), 堆 heap, 並查集 disjoint set, 字典樹 Trie, etc…

特殊

  • 位運算 Bitwise, 布隆過濾器 BloomFilter
  • LRU Cache 最近最少使用 (least recently used)

數據結構
注意:瞭解每個數據結構的原理和代碼框架

算法

在這裏插入圖片描述

  • if-else,switch —> branch
  • for, while loop —> Iteration
  • 遞歸 Recursion (Divide & Conquer, Backtrace)
  • 搜索 Search: 深度優先搜索 Depth first search, 廣度優先搜索 Breadth first search, A*, etc
  • 動態規劃 Dynamic Programming
  • 二分查找 Binary Search
  • 貪心 Greedy
  • 數學 Math , 幾何 Geometry

注意:在頭腦中回憶上面每種算法的思想和代碼模板
算法

算法腦圖

算法腦圖

數據結構腦圖

數據結構腦圖

動手繪製一份數據結構與算法腦圖

(2)Deliberate Practicing 刻意練習

職業化運動:

  • 基本功是區分業餘和職業選手的根本

  • 基礎動作的分解訓練和反覆練習

  • 刻意練習-過遍數(五毒神掌)5遍起

  • 練習缺陷、弱點的地方,可能會不舒服、不爽、枯燥,說明在成長。

  • 生活中的例子:乒乓球、檯球、遊戲等等。

每天都是這麼枯燥的練習的 沒那麼苦逼的 練習練習就好了 還可以。

練習缺陷、弱點地方、不舒服、不爽、枯燥就行。

(3)Feedback反饋

Feedback

  • 即時反饋
  • 主動型反饋(自己去找)
    • 高手代碼(Github、LeetCode、etc.)
    • 第一視角直播 學習
  • 被動式反饋(高手給你指點)
    • code review
    • 教練看你打,給你反饋

切題四件套

切題四件套:

  • Clarification (審題) 題意

  • Possible solution(解題多種可能性) :想所有可能的解法解這個題目

    • compare(time/space) 比較時空 :從時間、空間複雜度比較幾種解題思路
    • optimal(加強) 最優解
  • Coding(多寫)

  • Test cases(測試) (測試樣例)

反覆溝通,別題目沒看清楚就開始寫程序

想所有可能的想法去解,比較不同的時間空間搞最優。

寫單元測試再解題也可以,測試樣例、加強。

2、五步刷題法(五毒神掌)

刷題第一遍:

5分鐘:讀題+思考(建議不要超過15分鐘)

直接看解法:注意!多解法,比較優劣

背誦、默寫好的解法

第二遍:

馬上自己寫–> LeetCode提交 debug至完成

多種解法比較、體會–>優化!

看時間空間 效率 (執行時間和內存消耗)

第三遍:

過了一天後,再重複做題

不同解法的熟練程度–>專項練習

第四遍:

過了一週:反覆回來練習相同題目

對於不熟的題目專項練習。

第五遍:

如果有面試,面試前一週進行恢復式訓練

3、小結

小結

  • 職業訓練:拆分知識點、刻意練習、反饋

  • 五步刷題法(五毒神掌)

  • 做算法題的最大誤區:只做一遍

刻意練習 專題練習 反饋

一遍又一遍進行思維鞏固、反覆練習 理解 幹

熟悉、熟練 肌肉記憶了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章