資料結構與演算法 演算法攻關 指導篇

2021-10-21 01:38:11 字數 1041 閱讀 8567

文章部分知識來自極客時間,部分來自leetcode,部分來自開源的github面經。目的是形成一套免費的攻關手冊,希望幫助到有需要的人。

如果想要精通乙個領域,需要三個步驟

切碎知識點

刻意練習

反饋ps:我們應該學習的就是如何將碎片化時間學習體系化知識,這就是精通領域的第乙個要素,切碎知識點。

前幾天有個問題,我媳婦問我為啥老卡在那乙個演算法題,我想了想告訴他我再思考如何能夠提出乙個更優解,而且這個解法是融合我的思考的。我告訴她我希望的是從這個題能夠提煉出共性,以及能夠將變形體在未來很容易的解決,所以我需要第乙個穩紮穩打,第二個刻意練習這類問題。

那麼什麼時候我們需要刻意練習,我這裡想說明的就是你覺得不會的內容,有缺陷的地方,或者不舒服的內容。就像乙個木桶一樣,我們不是需要將那個非常長的木板提高的特別高,而是盡可能勻稱,這樣我們會能夠獲得更多水。

反饋很重要,前幾天跟領導聊完績效,領導問「你有什麼問題,想問的麼?」,我拿出了之前記錄的問題,問:從你自己來看,你認為什麼樣的員工好,什麼樣的領導好?

他給我的回答:持續成長,持續反饋,同時可以用在員工和領導身上。他認為反饋是對於每個人成長的必要條件,對於自己也是,如果領導不能給自己反饋,那麼第一領導不是非常重視自己,第二你沒法不斷獲得改變的建議,則容易偏離航道。

這裡我想表達的是,反饋可以主動反饋,自己去尋找自己的缺陷是否彌補上,或者去與高手pk。第二種是被動反饋,有mentor或者隊友看著你,並給你反饋。無論哪種,都是需要你冷靜對比反饋和自己分析以後進行下一步規劃的重點。

將演算法和資料結構進行切碎,我們可以看下如下圖:按照資料結構與演算法進行分了2類。

ps:此圖借用極客時間課程的圖,可能後期,我有了自己的思考和驗證會進行調整。

明確題意

考慮多個解題方式和多個解

邊寫邊思考

用case驗證

參考原文章:【資料結構與演算法】從0-1小白學習之路(入門篇)

參考原文章:【資料結構與演算法】從0-1小白學習之路(高階篇)

資料結構與演算法篇 hash

python中dict結構用雜湊表構建,採用開放定址法解決雜湊衝突 1 雜湊函式構造方法 自己選擇某種規則,避免衝突 直接定址法 數字分析法 平方取中法 摺疊法 除留餘數法 除數為質數 2 解決衝突方法 待插入的元素按雜湊函式計算得到的位址已經被占用 開放定址法 線性探測再雜湊,位址不斷加1,2,3...

演算法與資料結構 排序篇

演算法 平均複雜度 最壞情況 原地排序 額外空間 是否穩定 選擇排序 o n 2n n2 o n2n n2 是 o 1 是氣泡排序 o n 2n n2 o n2n n2 是 o 1 是插入排序 o n 2n n2 o n2n n2 是 o 1 是歸併排序 o n lo gn nlogn nlogn ...

演算法與資料結構概論篇

1.將兩公升序鍊錶合併時,最壞情況時需要比較的次數為長鍊錶的長度。2.資料結構研究的內容是涉及資料組織,資料運算的實現。3.計算機演算法是指解決問題的步驟序列,它必須具備可執行性,確定性和又窮性。4.演算法原地工作的含義是指所需的輔助空間為常量。5.同乙個演算法,實現語言的級別越高,執行效率越低。6...