Solving LeetCode problems using JavaScript。
题目涵盖了 LeetCode、「程序员的面试金典」(Cracking the Coding Interview)[第六版] 以及「剑指 offer」。
src 文件夹下按照题目分类存放解题文件,每道题对应一个文件。
文件的命名按照 [题号]-[题目的英文名].js 格式,英文单词用 - 连接。
test 目录下存放按照题目分类存解题测试文件,每道题对应一个测试文件
文件的命名按照 [题号]-[题目的英文名].test.js 格式,英文单词用 - 连接。
doc 目录下主要存放解题笔记以及优秀的题解总结。
doc/solutions 目录下存放按照题目分类的解题笔记文件,每道题对应一个笔记文件
文件的命名按照 [题号]-[题目的英文名].md 格式,英文单词用 - 连接。
Run all tests in a file (or multiple files matched)
npm test test/path/to/file.js
Run all test cases matched in multiple files
npm test -- --grep test-regex-string
对于每道题目都需要创建三个文件:源文件,测试文件,笔记文件,可以借助于自定义的 add
命令快速创建。
首先运行如下命令,将当前项目 bin 目录下的命令关联到本地 node_modules 下面
# -f filename (required) -c category (required) -t chineseDesc (optional)
add -f numberOfProblem-name-of-leetcode-problem -c categoryName -t chineseDescription
# 例如(提供中文题目名称)- 供题解 Markdown 文件使用
add -f 102-binary-tree-level-order-traversal -c binary-tree -t 二叉树的层次遍历
# 不提供中文题目名称
add -f 102-binary-tree-level-order-traversal -c binary-tree
移除之后,可以通过运行如下命令,跟运行步骤2中的 add
命令等价。
node bin/add.js -f numberOfProblem-name-of-leetcode-problem -c categoryName -t chineseDesc
题号
题目链接
难度
题解链接
刷题思路
820
单词的压缩编码
中等
题解
(1)字典树(Trie)后缀树 + 排序(2)Set 去重
深度优先搜索和广度优先搜索 (DFS & BFS)
动态规划 (dynamic programming)
题号
题目链接
难度
题解链接
分类
刷题思路
10.01
合并排序的数组
简单
题解
数组、双指针
17.16
按摩师
简单
题解
动态规划
类似于 198. 打家劫舍 问题