Skip to content

shudery/leetCode

Repository files navigation

LeetCode

Travis

没事刷刷算法题: leetcode

优势

使用本项目在本地环境刷 OJ 题目有如下好处:

  • 更习惯,使用自己平时开发写代码的编辑器/IDE。
  • 更高效和规范,可以有语法提示和自动格式化
  • 容易调试,本地断点调试方便
  • 本地测试用例,方便快速测试多个用例,避免在 OJ 平台多次错误提交
  • 可以测试对比多个算法耗时
  • 可离线做题,将做题记录同步到 git

安装依赖

npm install

新建题目

自动生成新题目的文件目录,根据模板生成相应文件,并在 readme 插入一条相关的信息。

./crepro.sh 999-template-test Easy
# ./crepro.sh {题目序号}-{题目(-分隔单词)} {题目难度}

PS:目前还需要手动 copy 一下题目内容和测试用例到本地,并导出函数,后续考虑通过自动化爬虫抓取。

测试单个题目

使用 mocha + chai + benchmark 来测试算法准确性和性能。

// 测试题号001,传入n=001,返回测试结果
n=001 npm test
// 返回测试结果,包括算法性能
n=001 npm run perf

测试所有题目

npm test
// 测试是否通过并且计算所有算法的性能,比较耗时
npm run perf

本地断点调试

npm run debug

数据结构构造函数

const { mapLinks, mapTree } = require('../../utils/map');

LeetCode Algorithm

完成的算法题列表,当前仅有 JavaScript 的解法。

# Title Solution Difficulty
463 island-perimeter JavaScript Easy
455 assign-cookies JavaScript Easy
419 battleships-in-a-board JavaScript Medium
413 arithmetic-slices JavaScript Medium
412 fizz-buzz JavaScript Easy
406 queue-reconstruction-by-height JavaScript Medium
371 sum-of-two-integers JavaScript Easy
344 reverse-string JavaScript Easy
338 counting-bits JavaScript Medium
292 nim-game JavaScript Medium
136 single-number JavaScript Easy
104 maximum-depth-of-binary-tree JavaScript Easy
001 two-sum JavaScript Easy
461 hamming-distance JavaScript Easy
535 encode-and-decode-tinyurl JavaScript Medium
476 number-complement JavaScript Easy
500 keyboar-row JavaScript Easy
496 next-greater-element-i JavaScript Easy
513 find-bottom-left-tree-value JavaScript Medium
485 max-consecutive-ones JavaScript Easy
520 detect-capital JavaScript Easy
448 find-all-numbers-disappeared-in-an-array JavaScript Easy
442 find-all-duplicates-in-an-array JavaScript Medium
258 add-digits JavaScript Easy
495 teemo-attacking JavaScript Medium
529 minesweeper JavaScript Medium
002 add-two-numbers JavaScript Medium
003 longest-substring-without-repeating-characters JavaScript Medium
004 median-of-two-sorted-arrays JavaScript Hard
209 minimum-size-subarray-sum JavaScript medium
167 two-sum-ii-input-array-is-sorted JavaScript easy
019 remove-nth-node-from-end-of-list JavaScript medium
020 valid-parentheses JavaScript easy
024 swap-nodes-in-pairs JavaScript medium
026 remove-duplicates-from-sorted-array JavaScript easy
075 sort-colors JavaScript medium
086 partition-list JavaScript medium
092 reverse-linked-list-ii JavaScript medium
094 binary-tree-inorder-traversal JavaScript medium
102 binary-tree-level-order-traversal JavaScript medium
103 binary-tree-zigzag-level-order-traversal/ JavaScript medium
107 binary-tree-level-order-traversal-ii JavaScript easy
144 binary-tree-preorder-traversal JavaScript medium
145 binary-tree-postorder-traversal JavaScript hard
146 lru-cache JavaScript hard
023 merge-two-sorted-lists JavaScript easy
009 palindrome-number JavaScript easy
005 longest-palindromic-substring JavaScript medium
007 reverse-integer JavaScript easy
014 longest-common-prefix JavaScript easy
028 implement-strstr JavaScript easy
035 search-insert-position JavaScript
010 regular-expression-matching JavaScript hard
053 maximum-subarray JavaScript easy
070 climbing-stairs JavaScript easy

About

🚀 Record my algorithms about the problems of Leetcode(https://leetcode.com/problemset/algorithms/)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages