Hello 算法 1.1.0 TypeScript版Hello 算法 TypeScript 语言版 作者:靳宇栋(@krahets) 代码审阅:谢发 (@justin‑tse) Release 1.1.0 2024‑04‑15 序 两年前,我在力扣上分享了“剑指 Offer”系列题解,受到了许多读者的鼓励和支持。在与读者交流期间,我 最常被问的一个问题是“如何入门算法”。逐渐地,我对这个问题产生了浓厚的兴趣。 两眼一抹黑地刷题似乎是最 书并非完全“免费”。为了不辜负你为本书所付出的宝贵“注意力”,我会竭尽所能,投入最大的“注意力” 来完成本书的创作。 本人自知学疏才浅,书中内容虽然已经过一段时间的打磨,但一定仍有许多错误,恳请各位老师和同学批评 指正。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。 动画在 PDF 内的展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例,使读者理解算法和数据结构的核心概念,并能够通 过编程来实现它们。在此基础上,本书致力于揭示算法在复杂世界中的生动体现,展现算法之美。希望本书 能够帮助到你! i 目 录 第 0 章 前言 1 0.1 关于本书 .0 码力 | 383 页 | 18.49 MB | 1 年前3
Hello 算法 1.2.0 简体中文 TypeScript 版Hello 算法 TypeScript 语言版 作者:靳宇栋(@krahets) 代码审阅:谢发 (@justin‑tse) Release 1.2.0 2024‑12‑06 序 两年前,我在力扣上分享了“剑指 Offer”系列题解,受到了许多读者的鼓励和支持。在与读者交流期间,我 最常被问的一个问题是“如何入门算法”。逐渐地,我对这个问题产生了浓厚的兴趣。 两眼一抹黑地刷题似乎是最 书并非完全“免费”。为了不辜负你为本书所付出的宝贵“注意力”,我会竭尽所能,投入最大的“注意力” 来完成本书的创作。 本人自知学疏才浅,书中内容虽然已经过一段时间的打磨,但一定仍有许多错误,恳请各位老师和同学批评 指正。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。 动画在 PDF 内的展示效果受限,可访问 www.hello‑algo.com 网页版以获得更优的阅读体验。 最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例,使读者理解算法和数据结构的核心概念,并能够通 过编程来实现它们。在此基础上,本书致力于揭示算法在复杂世界中的生动体现,展现算法之美。希望本书 能够帮助到你! i 目 录 第 0 章 前言 1 0.1 关于本书 .0 码力 | 383 页 | 18.49 MB | 10 月前3
Hello 算法 1.0.0b5 TypeScript 版,但会引导你探索数据结构与算法的“知 识地图”,带你了解不同“地雷”的形状大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信 你可以更加自如地应对刷题和阅读文献,逐步构建起完整的知识体系。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。动画在 PDF 内的 展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 czruby, gltianwen, liuxjerry, yabo083. 本书的代码审阅工作由 Gonglja, gvenusleo, hpstory, justin‐tse, krahets, nuomi1, Reanon, sjinzh 完 成(按照首字母顺序排列)。感谢他们付出的时间与精力,正是他们确保了各语言代码的规范与统一。 i 目 录 第 0 章 前言 1 0.1 关于本书 . 前言 � 算法犹如美妙的交响乐,每一行代码都像韵律般流淌。 愿这本书在你的脑海中轻轻响起,留下独特而深刻的旋律。 第 0 章 前言 hello‑algo.com 2 0.1 关于本书 本项目旨在创建一本开源免费、新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂、学习曲线平滑。 ‧ 算法源代码皆可一键运行,支持 Java、C++、P0 码力 | 378 页 | 30.70 MB | 1 年前3
Hello 算法 1.0.0b1 TypeScript 版,但会引导你探索数据结构与算法的“知识地 图”,带你了解不同“地雷”的形状大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信你可以 更加得心应手地刷题与阅读文献,逐步搭建起完整的知识体系。 书内的代码配有可一键运行的源文件,托管在 github.com/krahets/hello‑algo 仓库。动画在 PDF 内的展示 效果有限,可前往 hello‑algo.com 网页版获得更好的阅读体验。 fanchenggang, Keynman, youshaoXG, lipusheng, Javesun99, tao363, czruby, gltianwen, liuxjerry, yabo083. 本书的代码审阅工作由 justin‑tse, krahets, nuomi1, Reanon, sjinzh 完成,感谢他们的辛勤付出! 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读。” 写在前面 0.1. 关于本书 本项目致力于构建一本开源免费、新手友好的数据结构与算法入门书。 ‧ 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂、学习曲线平滑; ‧ 算法源代码皆可一键运行,支持 Java, C++, Python, Go, JS, TS, C#, Swift, Zig 等语言; ‧ 鼓励读者在章节讨论区互帮互助、共同进步,提问与评论一般能在两日内得到回复;0 码力 | 186 页 | 14.71 MB | 1 年前3
TypeScript Handbook(中文版)
那么TypeScript究竟为何物?又有什么 魅力呢? TypeScript是Microsoft公司注册商标。 TypeScript具有类型系统,且是JavaScript的超集。 它可以编译成普通的JavaScript 代码。 TypeScript支持任意浏览器,任意环境,任意系统并且是开源的。 TypeScript目前还在积极的开发完善之中,不断地会有新的特性加入进来。 因此本 手册也会紧随官方的每个commit 在编辑器,将下面的代码输入到 greeter.ts 文件里: function greeter(person) { return "Hello, " + person; } var user = "Jane User"; document.body.innerHTML = greeter(user); 编译代码 我们使用了 .ts 扩展名,但是这段代码仅仅是JavaScript而已。 ipt而已。 你可以直接从现 有的JavaScript应用里复制/粘贴这段代码。 在命令行上,运行TypeScript编译器: tsc greeter.ts TypeScript Handbook(中文版) 9 5分钟了解TypeScript 输出结果为一个 greeter.js 文件,它包含了和输入文件中相同的JavsScript代 码。 一切准备就绪,我们可以运行这个使用Typ0 码力 | 557 页 | 7.48 MB | 1 年前3
TypeScript 4.0 使用手册
2020) | 版本发布说明 ✔ TypeScript语言用于大规模应用的JavaScript开发。 ✔ TypeScript支持类型,是 JavaScript的超集且可以编译成纯JavaScript代码。 ✔ TypeScript兼容所有浏览器,所有宿主 环境,所有操作系统。 ✔ TypeScript是开源的。 一大波新的快速开始指南:React,Angular,Nodejs,ASP.NET TypeScript究竟为何物?又有什么魅力呢? TypeScript是Microsoft公司注册商标。 TypeScript具有类型系统,且是JavaScript的超集。 它可以编译成普通的JavaScript代码。 TypeScript支持任意浏览器,任意环境,任意系统并且是开源的。 TypeScript目前还在积极的开发完善之中,不断地会有新的特性加入进来。 因此本手册也会紧随官 方的每个commi 3默认包含了TypeScript。 如果你的 Visual Studio还没有安装TypeScript,你可以下载它。 针对使用npm的用户: 1. > npm install -g typescript 在编辑器,将下面的代码输入到 greeter.ts 文件里: 1. function greeter(person) { 2. return "Hello, " + person; 3. } 4. 50 码力 | 683 页 | 6.27 MB | 1 年前3
TypeScript 多场景设计方案及应用实践
inversify 的⾃自动化 优势:简单,功能精简 劣势:满⾜足不不了了⾃自定义的需求(xml) ⾃自动化装配 TS TS TS TS ⾃自研 100%满⾜足⾃自⼰己的需求,整体代码⾃自⼰己能掌握,同时更更简单 ⾃自研 injection TS ⾃自研 ⾃自研 injection @provide() export class UserService { @inject() Class / Function 2、多实现上的不不⼀一致 - ⽆无法⽅方便便的继承 3、代码洁癖上的问题 - 编译⽬目录分离 TS 体验 为了了良好的使⽤用 IoC,我们将整个 Midway 修改为了了 OO 的模型,所有的东⻄西都通过 class 来编码,这样也 可以更更好的借鉴 java 的思想,另⼀一⽅方⾯面可以通过接⼝口 来解决多实现的架构。 统⼀一使⽤用 class/interface 耦合的部分还是沿⽤用了了 egg 的写法,虽然有 变通的办法,但是需要在体验上更更进⼀一步。 TS 和 Egg.js 解耦 1、保留留原有能⼒力力,可以快速迭代升级(继 承 egg-loader) 2、实现装饰器器的⽅方式,利利⽤用现有的 API, 附加能⼒力力,⽐比如 loader 的扩展, loadController,load系列列的 保留留 Egg.js 的能⼒力力同时做出提升 TS0 码力 | 95 页 | 8.28 MB | 1 年前3
TypeScript 类型系统函数重载 13 1. TypeScript类型信息只存在于编译期,不会带到运行期 2. TypeScript要与JavaScript兼容 TypeScript 接口 14 接口合并 接口继承 类实现接口 TypeScript 接口 15 TypeScript 类型断言 16 TypeScript 类型守卫/类型收敛 17 当遇到下面这些条件语句时,TypeScript会在语句作用域内部收敛变量的类型 array+常见基础控制语句 状态:开发中 我目前的研究方向 24 目标:基于静态分析寻找脆弱的Node.js代码 需要做的: 1. 改造TypeScript编译器 2. 搭建TypeScript静态分析框架 3. 设计实现基于静态污点分析的漏洞检测技术 4. 设计实现面向Node.js应用的安全测试框架 Q & A0 码力 | 25 页 | 1.27 MB | 1 年前3
Programming TypeScript原文链接:https://ld246.com/article/1619437869849 来源网站:链滴 许可协议:署名-相同方式共享 4.0 国际 (CC BY-SA 4.0) TypeScript 概述 编译器 编写的代码(文本) 由 一个特殊的程序(编译器)解析,转换成抽象句法树(abstract syntax tree, AS ). AST 是去掉了空白、注释和缩进用的制表符或空格之后的数据结构。 编译器把 AST 字节码再传给运行时程序计算,最终得到结果。 ● 综上 1. 把程序解析成AST 2. 把AST编译成字节码 3. 运行时计算字节码 TS 的特殊之处在于,它不直接编译成字节码,而是编译成JS代码 ● TS 1. TS 源码 => TS AST 2. 类型检查器检查AST 3. TS AST => JS 源码 ● JS 4. JS 源码 => JS AST 5. AST => 字节码 }, "rulesDirectory": [] } # 运行第一个ts 代码 mkdir src touch src/index.ts 在文件中写 conole.log('hello TS') npx tsc 编译成 JS 代码 node ./dist/index.js 运行js 代码 # 安装 ts-node , 编译和运行一步到位 npm i --save-dev ts-node0 码力 | 3 页 | 202.08 KB | 1 年前3
Hello 算法 1.2.0 繁体中文 TypeScript 版部分名詞在簡體中文和繁體中文下的叫法不同。 表 16‑1 資料結構與演算法的重要名詞 English 簡體中文 繁體中文 algorithm 算法 演算法 data structure 数据结构 資料結構 code 代码 程式碼 file 文件 檔案 function 函数 函式 method 方法 方法 variable 变量 變數 asymptotic complexity analysis 渐近复杂度分析0 码力 | 384 页 | 18.80 MB | 10 月前3
共 10 条
- 1













