Hello 算法 1.0.0b1 JavaScript版重的书本也因此成为巨大的挑战。 如果你也有上述烦恼,那么很幸运这本书找到了你。本书是我对于该问题给出的答案,虽然不一定正确,但至 少代表一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知识地 图”,带你了解不同“地雷”的形状大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信你可以 更加得心应手地刷题与阅读文献,逐步搭建起完整的知识体系。 书内的代码配有可一键运行的源文件,托管在 justin‑tse, krahets, nuomi1, Reanon, sjinzh 完成,感谢他们的辛勤付出! 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读。” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 i 目 录 0. 写在前面 . . . . . . . . . . . . . . . . . 35 3. 数据结构简介 37 3.1. 数据与内存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.2. 数据结构分类 . . . . . . . . . . . . . . . . . . . .0 码力 | 185 页 | 14.70 MB | 1 年前3
Hello 算法 1.2.0 简体中文 JavaScript 版力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge 动画在 PDF 内的展示效果受限,可访问 www.hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小0 码力 | 379 页 | 18.47 MB | 10 月前3
Hello 算法 1.1.0 JavaScript版力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge 动画在 PDF 内的展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小0 码力 | 379 页 | 18.46 MB | 1 年前3
Hello 算法 1.0.0 JavaScript版力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge 仓库。动画在 PDF 内的 展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 i 目 录 第 0 章 前言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 第 3 章 数据结构 51 3.1 数据结构分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2 基本数据类型0 码力 | 376 页 | 17.57 MB | 1 年前3
Hello 算法 1.0.0b5 JavaScript版精力,厚重的书籍往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书找到了你。本书是我对此问题的给出的答案,即使不是最优解, 也至少是一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知 识地图”,带你了解不同“地雷”的形状大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信 你可以更加自如地应对刷题和阅读文献,逐步构建起完整的知识体系。 本书中的代码附有可一键运行的源文件,托管于 仓库。动画在 PDF 内的 展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读。” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 致谢 本书在开源社区众多贡献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 第 3 章 数据结构 48 3.1 数据结构分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.2 基本数据类型0 码力 | 375 页 | 30.68 MB | 1 年前3
阮一峰 《ECMAScript 6入门》 第三版ECMAScript 6简介 let 和 const 命令 变量的解构赋值 字符串的扩展 正则的扩展 数值的扩展 函数的扩展 数组的扩展 对象的扩展 Symbol Set 和 Map 数据结构 Proxy Reflect Promise 对象 Iterator 和 for...of 循环 Generator 函数的语法 Generator 函数的异步应用 async 函数 在变量指向 的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数 组),变量指向的内存地址,保存的只是一个指针, const 只能保证这个指针是 固定的,至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个 对象声明为常量必须非常小心。 const foo = {}; // 为 foo 添加一个属性,可以成功 foo.prop = 123; foo.prop 指向另一个对象,就会报错 foo = {}; // TypeError: "foo" is read-only 上面代码中,常量 foo 储存的是一个地址,这个地址指向一个对象。不可变的只 是这个地址,即不能把 foo 指向另一个地址,但对象本身是可变的,所以依然可 以为其添加新属性。 下面是另一个例子。 const a = []; a.push('Hello'); // 可执行 a.length =0 码力 | 679 页 | 2.66 MB | 1 年前3
2019-2021 美团技术年货 前端篇Sketch 数据源中并没有这些组件只有图层信息,图层是设计师在设计 UI 视图时 用到的视图控件。组件与图层的对应关系是一对多的关系,图层在 Sketch 数据源中 的表现形式如下图中的 JSON 数据结构所示,描述了图层的坐标、大小等信息,后 续布局生成就是基于对图层的切割来实现的。 [ { "class_name":"MSTextLayer", "fo 2021年美团技术年货 不过随着 Swift 的发展,这一部分的工作机制也发生了些许变化。 我们前面提到的 Swiftmodule 文件是一种二进制格式的文件,而这个文件格式会 包含一些编译器内部的数据结构,不同编译器产生的 Swiftmodule 文件是互相不 兼容的,这也就导致了不同 Xcode 构建出的产物是无法通用的,如果对这方面的 细节感兴趣,可以阅读 Swift 社区里的两篇官方 Blog:Evolving Doc、Dart Analyzer Server 中都有使用)构建 DSL。该库提供了 一组 API 能对 Dart source 进行分析,按照文件粒度生成 AST 对象。AST 对象用 整齐的数据结构包含了 Dart 文件的所有信息,利用这些信息可以便捷地生成所需的 DSL。所有的这个分析 + 转换的过程全部在线下进行。接下来, DSL-JSON 以 Zip 的形式下发,Flutter0 码力 | 738 页 | 50.29 MB | 1 年前3
廖雪峰JavaScript教程5. s[7]; // 'w' 6. s[12]; // '!' 7. s[13]; // undefined 超出范围的索引不会报错,但一律返回undefined 需要特别注意的是,字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没 有任何效果: 1. var s = 'Test'; 2. s[0] = 'X'; 3. alert(s); // s仍然为'Test' 41 - 本文档使用 书栈(BookStack.CN) 构建 2.8 Map和Set JavaScript的默认对象表示方式 {} 可以视为其他语言中的 Map 或 Dictionary 的数据结构, 即一组键值对。 但是JavaScript的对象有个小问题,就是键必须是字符串。但实际上Number或者其他数据类型作为 键也是非常合理的。 为了解决这个问题,最新的ES6规范引入了新的数据类型 书栈(BookStack.CN) 构建 1. // 两个参数: 2. (x, y) => x * x + y * y 3. 4. // 无参数: 5. () => 3.14 6. 7. // 可变参数: 8. (x, y, ...rest) => { 9. var i, sum = x + y; 10. for (i=0; i0 码力 | 264 页 | 2.81 MB | 10 月前3
阮一峰 JavaScript 教程nt)。这些语法特性已 经被证明非常强大,可以用于许多场合,尤其适用异步编程。 JavaScript 的所有值都是对象,这为程序员提供了灵活性和便利 性。因为你可以很方便地、按照需要随时创造数据结构,不用进行麻烦 的预定义。 JavaScript 的标准还在快速进化中,并不断合理化,添加更适用的 语法特性。 (2)支持编译运行。 JavaScript 语言本身,虽然是一种解释型语言,但是在现代浏览器 语言的一种方言)为蓝本,实 现这种新语言。 1995年5月,Brendan Eich 只用了10天,就设计完成了这种语言的 第一版。它是一个大杂烩,语法有多个来源。 基本语法:借鉴 C 语言和 Java 语言。 数据结构:借鉴 Java 语言,包括将值分成原始值和对象两大 历史 - 19 - 本文档使用 书栈(BookStack.CN) 构建 类。 函数的用法:借鉴 Scheme 语言和 Awk 语言,将函数当作第一 上面代码表示,数组的数字键不需要连续, length 属性的值总是比最 length 属性 数组 - 143 - 本文档使用 书栈(BookStack.CN) 构建 大的那个整数键大 1 。另外,这也表明数组是一种动态的数据结构, 可以随时增减数组的成员。 length 属性是可写的。如果人为设置一个小于当前成员个数的值,该 数组的成员会自动减少到 length 设置的值。 1. var arr = [ 'a'0 码力 | 540 页 | 3.32 MB | 10 月前3
[试读]15天学会JavaScript - 第 2 章
ECMAScript语法基础 ECMAScript 解释程序迅速查找变量的值。而如果一个值是引用类型, 那么其存储空间将从“堆”中分配。 “栈”与“堆”是计算机操作系统中两个十分重要的概念,这是因为二者作用的重要性。从 数据结构上理解,“栈”是一种“先进后出、后进先出”的存储结构;“堆”是一种树形存储结 构。从计算机操作系统原理上理解,“栈”一般位于一级缓存中;而“堆”一般位于二级缓存 中,一级缓存的存取速度自然是快于二级缓存的。 以将其存储在栈中是没有任何问题的。 29 第 2 章 ECMAScript 语法基础 在许多编程语言中,字符串都是被当作引用类型处理的,而不是原始类型。这是因为字符 串的长度大小是可变的,不适于作为原始类型来处理。不过,ECMAScript 语法改变了这 一点,字符串在 ECMAScript 中是作为原始类型来处理的。自然,ECMAScript 字符串的 处理速度会更快。0 码力 | 52 页 | 3.83 MB | 1 年前3
共 13 条
- 1
- 2













