一句话介绍:“在编辑器中开始练习你的leetcode
每日一题!”
如果,你想要在编辑器中编写你的题解...
如果,你想要简单快速的获取每日一题...
如果,你想要创建你自己的题解仓库...
那么,leetcode-practice
将满足你的一切想要!
工具 | 备注 |
---|---|
nodejs | lts |
git | lts |
patience | 一颗能够坚持刷题的心 |
此方案是最为推荐的使用方案,通过脚手架指令lc
、lk
、lf
自由灵活的在任意的目录中创建并检查你的题解。
使用预览
如果你想要快速的创建一个自己的题解库,可以使用我们的模板项目进行快速的创建github项目,并且获得完善的初始化内容。
使用预览
如果你想在编辑器中通过点击操作按钮来创建题解,可以使用我们的编辑器插件(计划支持WebStorm
和VSCode
)在你的编辑器中创建题解。
使用预览
你可以使用任意一款npm包管理软件(例如npm
,yarn
,pnpm
等)的在项目
中或者全局
进行安装。
# 示例:全局安装
# 使用npm进行全局安装
npm install -g leetcode-practice
# 使用pnpm进行安装
pnpm install -g leetcode-practice
# 使用yarn进行安装
yarn global install leetcode-practice
# 示例:在项目中安装
yarn add --dev leetcode-practice
提示: 在项目中安装和全局安装的区别在于脚手架的作用范围不同。如果在项目中安装,那么指令只能在该项目内使用,而在其他项目中(未安装leetcode-practice包的情况下)则无法使用指令。而全局安装则允许在任何目录下使用指令。
在这里给大家简单介绍一下每日一题的创建
和检查
,还有关键词搜索的使用方式,最为详细具体的指令和参数请参照KFC及其关键参数说明
在指令作用范围中,执行指令lc
来进行创建今天的每日一题:
# 移动到我的工作目录中
cd my-workspace
# 创建每日一题
lc
当看到提示:
MODE: today
题目[299.猜数字游戏]获取成功!
题目文件地址为:/my-workspace/299.bulls-and-cows/question.js
你的题目就已经创建完成了!可以在编辑器中愉快的解题了!
当你完成解题代码的编写,可以通过lk
指令进行简单的检查题解!
# lk指令和lc指令的模式是对应的,不带参数的时候意为检查今日题目
lk
你会得到如下提示信息:
MODE: today
题目[299.猜数字游戏]检测结果:
┌────────────┬──────────────────────────────────────────┬──────────────────────────────────────────┬────────────┬────────────┐
│ 测试结果 │ 预期结果 │ 执行结果 │ 执行用时 │ 内存占用 │
├────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼────────────┼────────────┤
│ 通过 │ "1A3B" │ "1A3B" │ 0.1361ms │ 2.79 KB │
│ 通过 │ "1A1B" │ "1A1B" │ 0.0623ms │ 2.93 KB │
└────────────┴──────────────────────────────────────────┴──────────────────────────────────────────┴────────────┴────────────┘
点击跳转到题目提交: https://leetcode.cn/problems/bulls-and-cows/
你可以看到测试结果
、预期结果
、执行结果
、执行用时
以及内存占用
信息。
关键词搜索是核心指令lf
的一项基本功能,可以通过关键词的形式获取题目信息,并快速的选择创建。
# lf指令是一个完全交互式的指令 按其中的提示进行输入操作即可获取自己想要的信息
lf
以下演示获取两数之和
这个题目如何通过关键词搜索创建:
# 在输入关键词 两数 之后 按下回车 会出现所有和两数相关的题目 按键盘的上下键进行选择 回车进行确认
? 请选择查找的模式? 关键词搜索
? 请输入关键词 两数
? 请选择题目
LCR 025.两数相加 II
2.两数相加
29.两数相除
❯ 1.两数之和
LCR 006.两数之和 II - 输入有序数组
445.两数相加 II
LCR 056.两数之和 IV - 输入二叉搜索树
(Use arrow keys to reveal more choices)
# 确认后的会进行题目创建,返回成功信息
? 请选择查找的模式? 关键词搜索
? 请输入关键词 两数
? 请选择题目 1.两数之和
1
MODE: identity
题目[1.两数之和]获取成功!
题目文件地址为:fill:///my-workspace/1.two-sum/question.js:36
提示: 在创建完成的时候会输出一个可以点击跳转的文件地址,如果在编辑器的控制台中点击,会直接打开对应的文件的函数开始位置。
- 在
github
中打开我们的模板项目leetcodePracticeTemplate。 点击
右上角的Use this template
,选择Create a new repository
。- 就像创建一个正常的仓库一样去填写信息即可。
- 等待...然后完成,从此你就有了一个自己的
leetcode题解仓库
,并且长期受leetcode-practice
官方支持!
填充创建过程图
e.g. 以我个人的项目为例
# 这里只是示例,请拉取自己的项目(在你看到这进行尝试的时候,此项目可能已经被清理,正常现象请勿疑惑)
git clone [email protected]:wh131462/my-leetcode-practice.git
# 移动进项目目录
cd my-leetcode-practice
# 初始化
npm i
在模板项目中使用leetcode-practice
的方式有两种,一种是项目内指令
的形式,一种是npm脚本
的形式。接下来演示创建的过程,其他的指令用法和参数与脚手架一致,请参考KFC及其关键参数说明部分。
# 在项目的根目录下 执行npm run lc 创建今日一题,因为默认配置了 -d src 所以 会在 src 目录下进行创建
npm run lc
# 也可以使用 yarn :任意一种你喜欢的包管理工具
yarn lc
你也可以使用指令lc
来创建,当然,你只能在项目中使用我们的脚本(如果你没有全局安装leetcode-practice
的话)。
# 使用lc 会在当前工作目录创建 如果 需要和脚本的表现保持一致(指在src目录下创建),请使用 -d src 参数
lc
注意:在这里进行一下强调,项目内指令的说法是指指令的作用范围限制是当前的项目目录,也就是说在其他的目录,你尝试使用lc指令会发现不起作用。
同样的,你也会发现在第一次安装好的时候,在项目内使用lc指令,也是不起作用的,这个时候需要关闭终端(terminal)再打开进行手动的刷新缓存。
npm脚本指在 package.json 中的 scripts 字段下封装的脚本指令。
当你想要进行更新的时候,可以执行封装好的npm指令:update
,可以帮你安装最新版本(latest)
的leetcode-practice
。
# 使用任意一种包管理工具执行即可
npm run update
# 当然你也可以自己执行指令
npm i -D leetcode-practice
KFC
是一个简便记法,可以快速记忆我们的三个核心指令:lk
,lf
,lc
。
指令 | 说明 |
---|---|
lk | 核心检查指令,支持三种模式对应的题目检测 |
lf | 核心查找指令,可以快捷的搜索你想要的题目,支持Hot100,关键词搜索,条件筛选等模式进行搜索题目并支持创建 |
lc | 核心创建指令,支持三种创建模式 ( 每日一题、指定题目、随机题目 ) 进行题目的创建 |
简单参数 | 完整参数 | 说明 |
---|---|---|
无参数/-t |
--today |
检查今日的每日一题 |
题目编号/-i <identity> |
--identity <identity> |
检查指定编号对应的题目,会检查当前工作目录下的是否存在指定id对应的题目 |
-r |
--random |
检查上一次使用随机模式创建的题目 |
-e |
--easy |
交互式的根据提示去检查对应的题目 |
注意: 当你检测的时候需要注意,使用什么模式去检查,请确保你已经执行过对应模式的创建操作。 指定编号模式除外,因为会优先检查指定的id是否在当前工作目录存在。
简单参数 | 完整参数 | 说明 |
---|---|---|
无参数 | 无 | 进入交互式查询,可根据提示搜索或筛选题目并创建题目 |
简单参数 | 完整参数 | 说明 |
---|---|---|
无参数/-t |
--today |
创建今日的每日一题 |
题目编号/-i <identity> |
--identity <identity> |
创建指定编号对应的题目 |
-r |
--random |
创建当前目录下未出现过的随机题目 |
-e |
--easy |
交互式创建题目 |
-a |
--all |
获取全部题目缓存,用于lf指令 |
简单参数 | 完整参数 | 说明 |
---|---|---|
-d <directory> |
--directory <directory> |
指定工作目录(是一个当前执行目录的相对地址),会影响创建和检查 |
-V |
--version |
检查版本号 |
-v |
--ver |
检查版本号信息并且输出一些额外的信息 |
-h |
--help |
获取帮助信息 |
-l [language] |
--language [language] |
不指定参数为获取当前的语言环境(默认为javascript),指定参数可以设置语言环境为对应语言(如-l java 可以指定语言环境为java) |
-u |
--update |
更新当前脚本或者依赖 |
注意:通用参数指三个脚本
lk
,lf
,lc
都支持的参数,使用上的语义一般来说是相同的,但是可能有些指令上的行为含义会有所不同(比如lc
指令指定-d
参数是指在指定目录中创建题目
,而lk
指令指定-d
参数就是指在指定目录创建题目
)。
项目的开发和完善离不开这些贡献者的辛勤付出,在此真诚感谢各位大佬的付出!
如果你也有一颗热爱开源的心,想要为我们的开源事业贡献一份力量,那么请参考我们的贡献手册。
如果你有使用上的问题需要解惑,或者一些好的建议想要提出,可以加我们的使用反馈群进行反馈!
在群里和开发者面对面的交流,希望我们能产生共鸣,迸发出新的火花!