Hello 算法 1.1.0 TypeScript版在本书的创作过程中,我得到了许多人的帮助。 ‧ 感谢我在公司的导师李汐博士,在一次畅谈中你鼓励我“快行动起来”,坚定了我写这本书的决心; ‧ 感谢我的女朋友泡泡作为本书的首位读者,从算法小白的角度提出许多宝贵建议,使得本书更适合新 手阅读; ‧ 感谢腾宝、琦宝、飞宝为本书起了一个富有创意的名字,唤起大家写下第一行代码“Hello World!”的 美好回忆; ‧ 感谢校铨在知识产权方 不断重复步骤 1. 和 步骤 2. ,直至找到拼音首字母为 ? 的页码为止。 图 1‑1 查字典步骤 查字典这个小学生必备技能,实际上就是著名的“二分查找”算法。从数据结构的角度,我们可以把字典视 为一个已排序的“数组”;从算法的角度,我们可以将上述查字典的一系列操作看作“二分查找”。 例二:整理扑克。我们在打牌时,每局都需要整理手中的扑克牌,使其从小到大排列,实现流程如图 1‑2 所 示。 第 初识算法 hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU0 码力 | 383 页 | 18.49 MB | 1 年前3
Hello 算法 1.0.0b5 TypeScript 版在本书的创作过程中,我得到了许多人的帮助,包括但不限于: ‧ 感谢我在公司的导师李汐博士,在一次畅谈中您鼓励我“快行动起来”,坚定了我写这本书的决心。 ‧ 感谢我的女朋友泡泡作为本书的首位读者,从算法小白的角度提出许多宝贵建议,使得本书更适合新 手阅读。 ‧ 感谢腾宝、琦宝、飞宝为本书起了一个富有创意的名字,唤起大家写下第一行代码“Hello World!”的 美好回忆。 ‧ 感谢苏潼为本书设计了精美的封面和 的页码为止。 图 1‑1 查字典步骤 第 1 章 初识算法 hello‑algo.com 11 查阅字典这个小学生必备技能,实际上就是著名的二分查找算法。从数据结构的角度,我们可以把字典视为 一个已排序的“数组”;从算法的角度,我们可以将上述查字典的一系列操作看作是“二分查找”。 例二:整理扑克。我们在打牌时,每局都需要整理扑克牌,使其从小到大排列,实现流程如图 1‑2 所示。 1. 将扑 初识算法 hello‑algo.com 12 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使我们能够通过编程将 数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行0 码力 | 378 页 | 30.70 MB | 1 年前3
Hello 算法 1.2.0 简体中文 TypeScript 版在本书的创作过程中,我得到了许多人的帮助。 ‧ 感谢我在公司的导师李汐博士,在一次畅谈中你鼓励我“快行动起来”,坚定了我写这本书的决心; ‧ 感谢我的女朋友泡泡作为本书的首位读者,从算法小白的角度提出许多宝贵建议,使得本书更适合新 手阅读; ‧ 感谢腾宝、琦宝、飞宝为本书起了一个富有创意的名字,唤起大家写下第一行代码“Hello World!”的 美好回忆; ‧ 感谢校铨在知识产权方 不断重复步骤 1. 和步骤 2. ,直至找到拼音首字母为 ? 的页码为止。 图 1‑1 查字典步骤 查字典这个小学生必备技能,实际上就是著名的“二分查找”算法。从数据结构的角度,我们可以把字典视 为一个已排序的“数组”;从算法的角度,我们可以将上述查字典的一系列操作看作“二分查找”。 例二:整理扑克。我们在打牌时,每局都需要整理手中的扑克牌,使其从小到大排列,实现流程如图 1‑2 所 示。 第 初识算法 www.hello‑algo.com 13 图 1‑3 货币找零过程 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU0 码力 | 383 页 | 18.49 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 TypeScript 版在本書的創作過程中,我得到了許多人的幫助。 ‧ 感謝我在公司的導師李汐博士,在一次暢談中你鼓勵我“快行動起來”,堅定了我寫這本書的決心; ‧ 感謝我的女朋友泡泡作為本書的首位讀者,從演算法小白的角度提出許多寶貴建議,使得本書更適合 新手閱讀; ‧ 感謝騰寶、琦寶、飛寶為本書起了一個富有創意的名字,喚起大家寫下第一行程式碼“Hello World!” 的美好回憶; ‧ 感謝校銓在智慧財產 不斷重複步驟 1. 和步驟 2. ,直至找到拼音首字母為 ? 的頁碼為止。 圖 1‑1 查字典步驟 查字典這個小學生必備技能,實際上就是著名的“二分搜尋”演算法。從資料結構的角度,我們可以把字典 視為一個已排序的“陣列”;從演算法的角度,我們可以將上述查字典的一系列操作看作“二分搜尋”。 例二:整理撲克。我們在打牌時,每局都需要整理手中的撲克牌,使其從小到大排列,實現流程如圖 1‑2 所 示。 第 www.hello‑algo.com 13 圖 1‑3 貨幣找零過程 在以上步驟中,我們每一步都採取當前看來最好的選擇(儘可能用大面額的貨幣),最終得到了可行的找零方 案。從資料結構與演算法的角度看,這種方法本質上是“貪婪”演算法。 小到烹飪一道菜,大到星際航行,幾乎所有問題的解決都離不開演算法。計算機的出現使得我們能夠透過程 式設計將資料結構儲存在記憶體中,同時編寫程式碼呼叫 CPU 和0 码力 | 384 页 | 18.80 MB | 10 月前3
Hello 算法 1.0.0b1 TypeScript 版应用到日常生活中。接下来,我将介绍两个具体例子来佐证。 例一:拼积木。一套积木,除了有许多部件之外,还会附送详细的拼装说明书。我们按照说明书上一步步操作, 即可拼出复杂的积木模型。 如果从数据结构与算法的角度看,大大小小的「积木」就是数据结构,而「拼装说明书」上的一系列步骤就是 算法。 例二:查字典。在字典中,每个汉字都有一个对应的拼音,而字典是按照拼音的英文字母表顺序排列的。假设 需要在字典中查询任意一个拼音首字母为 的页码时终止。 1. 引言 hello‑algo.com 9 Figure 1‑1. 查字典步骤 查字典这个小学生的标配技能,实际上就是大名鼎鼎的「二分查找」。从数据结构角度,我们可以将字典看作 是一个已排序的「数组」;而从算法角度,我们可将上述查字典的一系列指令看作是「二分查找」算法。 小到烹饪一道菜、大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现,使我们可以通过编程将 数据结构存储在内存中,也可以编写代码来调用 复杂度分析给出一把评价算法效率的“标尺”,告诉我们执行某个算法需要多少时间和空间资源,也让我们可 以开展不同算法之间的效率对比。 复杂度是个数学概念,对于初学者可能比较抽象,学习难度相对较高。从这个角度出发,其并不适合作为第一 章内容。但是,当我们讨论某个数据结构或者算法的特点时,难以避免需要分析它的运行速度和空间使用情 况。因此,在展开学习数据结构与算法之前,建议读者先对复杂度建立起初步的了解,并且能够完成简单案例0 码力 | 186 页 | 14.71 MB | 1 年前3
TypeScript Handbook(中文版)
记住,当你使用 any 时,你会失去大多数TypeScript提供的错误检查和编译器支 持。 如果你还是决定使用 Object 和 {} ,你应该选择 {} 。 虽说它们基本一样,但 是从技术角度上来讲 {} 在一些深奥的情况里比 Object 更普通。 启用严格检查 TypeScript提供了一些检查来保证安全以及帮助分析你的程序。 当你将代码转换为 了TypeScript后,你 greet()); 上面的代码里, let Greeter 将被赋值为构造函数。 当我们调用 new 并执行了 这个函数后,便会得到一个类的实例。 这个构造函数也包含了类的所有静态属性。 换个角度说,我们可以认为类具有实例部分与静态部分这两个部分。 让我们稍微改写一下这个例子,看看它们之前的区别: TypeScript Handbook(中文版) 274 类 class Greeter 换的。 源类型上有额外的可选 参数不是错误,目标类型的可选参数在源类型里没有对应的参数也不是错误。 当一个函数有剩余参数时,它被当做无限个可选参数。 这对于类型系统来说是不稳定的,但从运行时的角度来看,可选参数一般来说是不 强制的,因为对于大多数函数来说相当于传递了一些 undefinded 。 TypeScript Handbook(中文版) 309 类型兼容性 有一个好的例子,0 码力 | 557 页 | 7.48 MB | 1 年前3
TypeScript 4.0 使用手册
记住,当你使用 any 时,你会失 去大多数TypeScript提供的错误检查和编译器支持。 如果你还是决定使用 Object 和 {} ,你应该选择 {} 。 虽说它们基本一样,但是从技术角度上 来讲 {} 在一些深奥的情况里比 Object 更普通。 TypeScript提供了一些检查来保证安全以及帮助分析你的程序。 当你将代码转换为了TypeScript 后,你可以启用这些检查来帮助你获得高度安全性。 greet()); 上面的代码里, let Greeter 将被赋值为构造函数。 当我们调用 new 并执行了这个函数后,便 会得到一个类的实例。 这个构造函数也包含了类的所有静态属性。 换个角度说,我们可以认为类具有 _实例部分_与_静态部分_这两个部分。 让我们稍微改写一下这个例子,看看它们之间的区别: 1. class Greeter { 2. static standardGreeting 必须要读一个数字枚举的运行时的值,这个值通常是很难读的 - 它并不能表达有用的信息(尽管反向 映射会有所帮助),字符串枚举允许你提供一个运行时有意义的并且可读的值,独立于枚举成员的名 字。 从技术的角度来说,枚举可以混合字符串和数字成员,但是似乎你并不会这么做: 1. enum BooleanLikeHeterogeneousEnum { 2. No = 0, 3. Yes =0 码力 | 683 页 | 6.27 MB | 1 年前3
共 7 条
- 1













