 Hello 算法 1.2.0 繁体中文 Dart 版演算法猶如美妙的交響樂,每一行程式碼都像韻律般流淌。 願這本書在你的腦海中輕輕響起,留下獨特而深刻的旋律。 第 0 章 前言 www.hello‑algo.com 2 0.1 關於本書 本專案旨在建立一本開源、免費、對新手友好的資料結構與演算法入門教程。 ‧ 全書採用動畫圖解,內容清晰易懂、學習曲線平滑,引導初學者探索資料結構與演算法的知識地圖。 ‧ 源程式碼可一鍵執行,幫助讀者在練習 圖 0‑4 克隆倉庫與下載程式碼 第三步:執行源程式碼。如圖 0‑5 所示,對於頂部標有檔案名稱的程式碼塊,我們可以在倉庫的 codes 檔案 夾內找到對應的源程式碼檔案。源程式碼檔案可一鍵執行,將幫助你節省不必要的除錯時間,讓你能夠專注 於學習內容。 圖 0‑5 程式碼塊與對應的源程式碼檔案 除了本地執行程式碼,網頁版還支持 Python 程式碼的視覺化執行(基於 pythontutor 第 1 章 初識演算法 www.hello‑algo.com 13 圖 1‑3 貨幣找零過程 在以上步驟中,我們每一步都採取當前看來最好的選擇(儘可能用大面額的貨幣),最終得到了可行的找零方 案。從資料結構與演算法的角度看,這種方法本質上是“貪婪”演算法。 小到烹飪一道菜,大到星際航行,幾乎所有問題的解決都離不開演算法。計算機的出現使得我們能夠透過程 式設計將資料結構儲存在記憶體中,同時編寫程式碼呼叫0 码力 | 378 页 | 18.77 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 Dart 版演算法猶如美妙的交響樂,每一行程式碼都像韻律般流淌。 願這本書在你的腦海中輕輕響起,留下獨特而深刻的旋律。 第 0 章 前言 www.hello‑algo.com 2 0.1 關於本書 本專案旨在建立一本開源、免費、對新手友好的資料結構與演算法入門教程。 ‧ 全書採用動畫圖解,內容清晰易懂、學習曲線平滑,引導初學者探索資料結構與演算法的知識地圖。 ‧ 源程式碼可一鍵執行,幫助讀者在練習 圖 0‑4 克隆倉庫與下載程式碼 第三步:執行源程式碼。如圖 0‑5 所示,對於頂部標有檔案名稱的程式碼塊,我們可以在倉庫的 codes 檔案 夾內找到對應的源程式碼檔案。源程式碼檔案可一鍵執行,將幫助你節省不必要的除錯時間,讓你能夠專注 於學習內容。 圖 0‑5 程式碼塊與對應的源程式碼檔案 除了本地執行程式碼,網頁版還支持 Python 程式碼的視覺化執行(基於 pythontutor 第 1 章 初識演算法 www.hello‑algo.com 13 圖 1‑3 貨幣找零過程 在以上步驟中,我們每一步都採取當前看來最好的選擇(儘可能用大面額的貨幣),最終得到了可行的找零方 案。從資料結構與演算法的角度看,這種方法本質上是“貪婪”演算法。 小到烹飪一道菜,大到星際航行,幾乎所有問題的解決都離不開演算法。計算機的出現使得我們能夠透過程 式設計將資料結構儲存在記憶體中,同時編寫程式碼呼叫0 码力 | 378 页 | 18.77 MB | 10 月前3
 Hello 算法 1.1.0 Dart版31 元。 第 1 章 初识算法 hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 上。换句话说,我们只能从第 ? − 1 阶或第 ? − 2 阶迈向第 ? 阶。 由此便可得出一个重要推论:爬到第 ? − 1 阶的方案数加上爬到第 ? − 2 阶的方案数就等于爬到第 ? 阶的方 案数。公式如下: ??[?] = ??[? − 1] + ??[? − 2] 这意味着在爬楼梯问题中,各个子问题之间存在递推关系,原问题的解可以由子问题的解构建得来。图 14‑2 展示了该递推关系。 例如零钱兑换问题,我们虽然能够容易地举出反例,对贪心选择性质进行证伪,但证实的难度较大。如果问: 满足什么条件的硬币组合可以使用贪心算法求解?我们往往只能凭借直觉或举例子来给出一个模棱两可的答 案,而难以给出严谨的数学证明。 Quote 有一篇论文给出了一个 ?(?3) 时间复杂度的算法,用于判断一个硬币组合能否使用贪心算法找出任 意金额的最优解。 Pearson, D. A polynomial‑time0 码力 | 378 页 | 18.45 MB | 1 年前3 Hello 算法 1.1.0 Dart版31 元。 第 1 章 初识算法 hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 上。换句话说,我们只能从第 ? − 1 阶或第 ? − 2 阶迈向第 ? 阶。 由此便可得出一个重要推论:爬到第 ? − 1 阶的方案数加上爬到第 ? − 2 阶的方案数就等于爬到第 ? 阶的方 案数。公式如下: ??[?] = ??[? − 1] + ??[? − 2] 这意味着在爬楼梯问题中,各个子问题之间存在递推关系,原问题的解可以由子问题的解构建得来。图 14‑2 展示了该递推关系。 例如零钱兑换问题,我们虽然能够容易地举出反例,对贪心选择性质进行证伪,但证实的难度较大。如果问: 满足什么条件的硬币组合可以使用贪心算法求解?我们往往只能凭借直觉或举例子来给出一个模棱两可的答 案,而难以给出严谨的数学证明。 Quote 有一篇论文给出了一个 ?(?3) 时间复杂度的算法,用于判断一个硬币组合能否使用贪心算法找出任 意金额的最优解。 Pearson, D. A polynomial‑time0 码力 | 378 页 | 18.45 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Dart 版第 1 章 初识算法 www.hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 上。换句话说,我们只能从第 ? − 1 阶或第 ? − 2 阶迈向第 ? 阶。 由此便可得出一个重要推论:爬到第 ? − 1 阶的方案数加上爬到第 ? − 2 阶的方案数就等于爬到第 ? 阶的方 案数。公式如下: ??[?] = ??[? − 1] + ??[? − 2] 这意味着在爬楼梯问题中,各个子问题之间存在递推关系,原问题的解可以由子问题的解构建得来。图 14‑2 展示了该递推关系。 例如零钱兑换问题,我们虽然能够容易地举出反例,对贪心选择性质进行证伪,但证实的难度较大。如果问: 满足什么条件的硬币组合可以使用贪心算法求解?我们往往只能凭借直觉或举例子来给出一个模棱两可的答 案,而难以给出严谨的数学证明。 Quote 有一篇论文给出了一个 ?(?3) 时间复杂度的算法,用于判断一个硬币组合能否使用贪心算法找出任 意金额的最优解。 Pearson, D. A polynomial‑time0 码力 | 378 页 | 18.46 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Dart 版第 1 章 初识算法 www.hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 上。换句话说,我们只能从第 ? − 1 阶或第 ? − 2 阶迈向第 ? 阶。 由此便可得出一个重要推论:爬到第 ? − 1 阶的方案数加上爬到第 ? − 2 阶的方案数就等于爬到第 ? 阶的方 案数。公式如下: ??[?] = ??[? − 1] + ??[? − 2] 这意味着在爬楼梯问题中,各个子问题之间存在递推关系,原问题的解可以由子问题的解构建得来。图 14‑2 展示了该递推关系。 例如零钱兑换问题,我们虽然能够容易地举出反例,对贪心选择性质进行证伪,但证实的难度较大。如果问: 满足什么条件的硬币组合可以使用贪心算法求解?我们往往只能凭借直觉或举例子来给出一个模棱两可的答 案,而难以给出严谨的数学证明。 Quote 有一篇论文给出了一个 ?(?3) 时间复杂度的算法,用于判断一个硬币组合能否使用贪心算法找出任 意金额的最优解。 Pearson, D. A polynomial‑time0 码力 | 378 页 | 18.46 MB | 10 月前3
 Hello 算法 1.0.0b5 Dart版31 元。 第 1 章 初识算法 hello‑algo.com 12 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使我们能够通过编程将 数据结构存储在内存中,同时编写代码调用 CPU 上。换句话说,我们只能从第 ? − 1 阶或第 ? − 2 阶前往第 ? 阶。 由此便可得出一个重要推论:爬到第 ? − 1 阶的方案数加上爬到第 ? − 2 阶的方案数就等于爬到第 ? 阶的方 案数。公式如下: ??[?] = ??[? − 1] + ??[? − 2] 这意味着在爬楼梯问题中,各个子问题之间存在递推关系,原问题的解可以由子问题的解构建得来。图 14‑2 展示了该递推关系。 例如零钱兑换问题,我们虽然能够容易地举出反例,对贪心选择性质进行证伪,但证实的难度较大。如果问: 满足什么条件的硬币组合可以使用贪心算法求解?我们往往只能凭借直觉或举例子来给出一个模棱两可的答 案,而难以给出严谨的数学证明。 第 15 章 贪心 hello‑algo.com 352 � 有一篇论文给出了一个 ?(?3) 时间复杂度的算法,用于判断一个硬币组合是否可以使用贪心 算法找出任何金额的最优解。0 码力 | 376 页 | 30.67 MB | 1 年前3 Hello 算法 1.0.0b5 Dart版31 元。 第 1 章 初识算法 hello‑algo.com 12 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使我们能够通过编程将 数据结构存储在内存中,同时编写代码调用 CPU 上。换句话说,我们只能从第 ? − 1 阶或第 ? − 2 阶前往第 ? 阶。 由此便可得出一个重要推论:爬到第 ? − 1 阶的方案数加上爬到第 ? − 2 阶的方案数就等于爬到第 ? 阶的方 案数。公式如下: ??[?] = ??[? − 1] + ??[? − 2] 这意味着在爬楼梯问题中,各个子问题之间存在递推关系,原问题的解可以由子问题的解构建得来。图 14‑2 展示了该递推关系。 例如零钱兑换问题,我们虽然能够容易地举出反例,对贪心选择性质进行证伪,但证实的难度较大。如果问: 满足什么条件的硬币组合可以使用贪心算法求解?我们往往只能凭借直觉或举例子来给出一个模棱两可的答 案,而难以给出严谨的数学证明。 第 15 章 贪心 hello‑algo.com 352 � 有一篇论文给出了一个 ?(?3) 时间复杂度的算法,用于判断一个硬币组合是否可以使用贪心 算法找出任何金额的最优解。0 码力 | 376 页 | 30.67 MB | 1 年前3
 Hello 算法 1.0.0 Dart版31 元。 第 1 章 初识算法 hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 上。换句话说,我们只能从第 ? − 1 阶或第 ? − 2 阶迈向第 ? 阶。 由此便可得出一个重要推论:爬到第 ? − 1 阶的方案数加上爬到第 ? − 2 阶的方案数就等于爬到第 ? 阶的方 案数。公式如下: ??[?] = ??[? − 1] + ??[? − 2] 这意味着在爬楼梯问题中,各个子问题之间存在递推关系,原问题的解可以由子问题的解构建得来。图 14‑2 展示了该递推关系。 例如零钱兑换问题,我们虽然能够容易地举出反例,对贪心选择性质进行证伪,但证实的难度较大。如果问: 满足什么条件的硬币组合可以使用贪心算法求解?我们往往只能凭借直觉或举例子来给出一个模棱两可的答 案,而难以给出严谨的数学证明。 � 有一篇论文给出了一个 ?(?3) 时间复杂度的算法,用于判断一个硬币组合能否使用贪心算法 找出任意金额的最优解。 Pearson, D. A polynomial‑time0 码力 | 377 页 | 17.56 MB | 1 年前3 Hello 算法 1.0.0 Dart版31 元。 第 1 章 初识算法 hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 上。换句话说,我们只能从第 ? − 1 阶或第 ? − 2 阶迈向第 ? 阶。 由此便可得出一个重要推论:爬到第 ? − 1 阶的方案数加上爬到第 ? − 2 阶的方案数就等于爬到第 ? 阶的方 案数。公式如下: ??[?] = ??[? − 1] + ??[? − 2] 这意味着在爬楼梯问题中,各个子问题之间存在递推关系,原问题的解可以由子问题的解构建得来。图 14‑2 展示了该递推关系。 例如零钱兑换问题,我们虽然能够容易地举出反例,对贪心选择性质进行证伪,但证实的难度较大。如果问: 满足什么条件的硬币组合可以使用贪心算法求解?我们往往只能凭借直觉或举例子来给出一个模棱两可的答 案,而难以给出严谨的数学证明。 � 有一篇论文给出了一个 ?(?3) 时间复杂度的算法,用于判断一个硬币组合能否使用贪心算法 找出任意金额的最优解。 Pearson, D. A polynomial‑time0 码力 | 377 页 | 17.56 MB | 1 年前3
共 5 条
- 1













