官术网_书友最值得收藏!

總結(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!)這樣的空間復雜度基本不會有。

主站蜘蛛池模板: 璧山县| 泊头市| 酒泉市| 长岭县| 资源县| 文水县| 泾川县| 盐亭县| 正宁县| 宾川县| 措美县| 肥东县| 五大连池市| 曲麻莱县| 邮箱| 扶风县| 杭州市| 绍兴市| 金湖县| 张家口市| 晋城| 凤庆县| 鹰潭市| 页游| 苏州市| 海晏县| 东兰县| 平阳县| 和顺县| 威信县| 栖霞市| 梓潼县| 延寿县| 皋兰县| 黔江区| 天峨县| 贡嘎县| 台东县| 寿阳县| 穆棱市| 金寨县|