- 算法通關之路
- 路志鵬 俞俊 海凡路 黃樂興 李冰
- 473字
- 2021-10-15 18:31:58
總結(jié)
學習算法以便更好地面試或刷力扣(LeetCode)題目,并不需要掌握高深的數(shù)學知識,很多“需要數(shù)學”的題目,數(shù)學方法并不是唯一解,通常也可以使用其他方法來解決。
掌握基礎數(shù)據(jù)結(jié)構(gòu)和算法知識永遠是你提高自身能力的必要條件,沒有這些底層知識很難往上走。另外,力扣(LeetCode)的題型就那么幾種,算法思維也就那么幾個,掌握這些常見的數(shù)據(jù)結(jié)構(gòu)、算法思想對于解決新的題目來說至關重要。
時間復雜度分析是算法的基石,掌握它對我們學習后面的章節(jié)有很大的幫助。本章首先引入了衡量算法性能的好壞的方法和大O表示法,接著通過若干實例介紹了常見的時間復雜度,掌握相關分析方法就已經(jīng)足夠應付絕大多數(shù)算法問題了。對于迭代,分析起來比較簡單,而分析遞歸可能就比較復雜了,需要輔助手段,本章介紹了遞歸樹法和代入法。
掌握某種算法的復雜度規(guī)律后,有時根據(jù)題目的時間復雜度要求,就可以猜測出可能用到的算法,比如算法要求時間復雜度為O(logn),那么就有可能是二分法,關于這一點,將在第20章做更多的介紹。
空間復雜度分析比時間復雜度分析要簡單得多,常見的空間復雜度有O(1)、O(n)、O(n2),而O(logn)、O(nlogn)、O(n!)這樣的空間復雜度基本不會有。
推薦閱讀
- 數(shù)據(jù)庫原理及應用教程(第4版)(微課版)
- 企業(yè)大數(shù)據(jù)系統(tǒng)構(gòu)建實戰(zhàn):技術、架構(gòu)、實施與應用
- Libgdx Cross/platform Game Development Cookbook
- UDK iOS Game Development Beginner's Guide
- 數(shù)據(jù)驅(qū)動設計:A/B測試提升用戶體驗
- Scratch 3.0 藝術進階
- Hadoop 3.x大數(shù)據(jù)開發(fā)實戰(zhàn)
- AI時代的數(shù)據(jù)價值創(chuàng)造:從數(shù)據(jù)底座到大模型應用落地
- 信息學競賽寶典:數(shù)據(jù)結(jié)構(gòu)基礎
- 數(shù)據(jù)庫與數(shù)據(jù)處理:Access 2010實現(xiàn)
- Doris實時數(shù)倉實戰(zhàn)
- Filecoin原理與實現(xiàn)
- 云計算
- Python金融數(shù)據(jù)挖掘與分析實戰(zhàn)
- 數(shù)據(jù)庫基礎與應用