统计数据的时间是从 2019-09-03 19:40 起至今
简体中文 | English
- 
2019-07-10 :纪念项目 Star 突破 1W 的一个短文, 记录了项目的"兴起"之路,大家有兴趣可以看一下,如果对这个项目感兴趣,请点击一下 Star, 项目会持续更新,感谢大家的支持。
 - 
2019-10-08: 纪念 LeetCode 项目 Star 突破 2W,并且 Github 搜索“LeetCode”,排名第一。
 
leetcode 题解,记录自己的 leetcode 解题之路。
本仓库目前分为五个部分:
- 
第一个部分是 leetcode 经典题目的解析,包括思路,关键点和具体的代码实现。
 - 
第二部分是对于数据结构与算法的总结
 - 
第三部分是 anki 卡片, 将 leetcode 题目按照一定的方式记录在 anki 中,方便大家记忆。
 - 
第四部分是每日一题,每日一题是在交流群(包括微信和 qq)里进行的一种活动,大家一起 解一道题,这样讨论问题更加集中,会得到更多的反馈。而且 这些题目可以被记录下来,日后会进行筛选添加到仓库的题解模块。
 - 
第五部分是计划, 这里会记录将来要加入到以上三个部分内容
 
只有熟练掌握基础的数据结构与算法,才能对复杂问题迎刃有余。
擅长前端工程化,前端性能优化,前端标准化等,做过。net, 搞过 Java,现在是一名前端工程师,我的个人博客:https://lucifer.ren/blog/
我经常会在开源社区进行一些输出和分享,比较受欢迎的有 宇宙最强的前端面试指南 和 我的第一本小书。目前本人正在写一本关于《leetcode 题解》的实体书,感兴趣的可以通过邮箱或者微信联系我,我会在出版的第一时间通知你,并给出首发优惠价。
另外如果大家需要内推的可以找我,我这里有包括阿里,腾讯,头条,网易等很多公司的朋友。有需要可以直接群里联系我,或者发送到我的个人邮箱 [[email protected]]。
- 
对于最近添加的部分, 后面会有 🆕 标注
 - 
对于最近更新的部分, 后面会有 🖊 标注
 - 
将来会在这里更新 anki 卡片
 - 
这里有一份 leetcode 官方账号在知乎上给出的一个《互联网公司最常见的面试算法题有哪些?》的答案,我这里尽量去覆盖回答中的题目和知识点 原文地址: https://www.zhihu.com/question/24964987/answer/586425979
 - 
这里有一份我在知乎上的回答 《大家都是如何刷 LeetCode 的?》
 - 
这里有一张互联网公司面试中经常考察的问题类型总结的思维导图,我们可以结合图片中的信息分析一下。
 
(图片来自 leetcode)
其中算法,主要是以下几种:
- 基础技巧:分治、二分、贪心
 - 排序算法:快速排序、归并排序、计数排序
 - 搜索算法:回溯、递归、深度优先遍历,广度优先遍历,二叉搜索树等
 - 图论:最短路径、最小生成树
 - 动态规划:背包问题、最长子序列
 
数据结构,主要有如下几种:
- 数组与链表:单 / 双向链表
 - 栈与队列
 - 哈希表
 - 堆:最大堆 / 最小堆
 - 树与图:最近公共祖先、并查集
 - 字符串:前缀树(字典树) / 后缀树
 
- 
Top 100 Liked Questions (84 / 100)
 - 
Top Interview Questions (115 / 145)
 
这里仅列举具有代表性题目,并不是全部题目
- 0020.Valid Parentheses
 - 0026.remove-duplicates-from-sorted-array
 - 0053.maximum-sum-subarray 🆕
 - 0088.merge-sorted-array
 - 0104.maximum-depth-of-binary-tree
 - 0121.best-time-to-buy-and-sell-stock
 - 0122.best-time-to-buy-and-sell-stock-ii
 - 0125.valid-palindrome 🆕
 - 0136.single-number
 - 0155.min-stack 🆕
 - 0167.two-sum-ii-input-array-is-sorted
 - 0169.majority-element
 - 0172.factorial-trailing-zeroes
 - 0190.reverse-bits
 - 0191.number-of-1-bits
 - 0198.house-robber
 - 0203.remove-linked-list-elements
 - 0206.reverse-linked-list
 - 0219.contains-duplicate-ii
 - 0226.invert-binary-tree
 - 0232.implement-queue-using-stacks 🆕
 - 0263.ugly-number
 - 0283.move-zeroes
 - 0342.power-of-four
 - 0349.intersection-of-two-arrays
 - 0437.path-sum-iii 🆕
 - 0371.sum-of-two-integers
 - 0501.find-mode-in-binary-search-tree🆕
 - 0575.distribute-candies
 - 0874.walking-robot-simulation 🆕
 - 1260.shift-2d-grid 🆕
 - 1332.remove-palindromic-subsequences 🆕
 
- 0002. Add Two Numbers
 - 0003. Longest Substring Without Repeating Characters
 - 0005.longest-palindromic-substring
 - 0011.container-with-most-water
 - 0015.3-sum
 - 0019. Remove Nth Node From End of List
 - 0024. Swap Nodes In Pairs
 - 0029.divide-two-integers
 - 0031.next-permutation
 - 0033.search-in-rotated-sorted-array
 - 0039.combination-sum
 - 0040.combination-sum-ii
 - 0046.permutations
 - 0047.permutations-ii
 - 0048.rotate-image
 - 0049.group-anagrams
 - 0050.pow-x-n 🆕
 - 0055.jump-game
 - 0056.merge-intervals
 - 0060.permutation-sequence 🆕
 - 0062.unique-paths 🖊
 - 0073.set-matrix-zeroes
 - 0075.sort-colors
 - 0078.subsets
 - 0079.word-search
 - 0080.remove-duplicates-from-sorted-array-ii 🆕
 - 0086.partition-list
 - 0090.subsets-ii
 - 0091.decode-ways
 - 0092.reverse-linked-list-ii 🖊
 - 0094.binary-tree-inorder-traversal
 - 0095.unique-binary-search-trees-ii 🆕
 - 0096.unique-binary-search-trees 🆕
 - 0098.validate-binary-search-tree
 - 0102.binary-tree-level-order-traversal
 - 0103.binary-tree-zigzag-level-order-traversal
 - 0113.path-sum-ii
 - 0129.sum-root-to-leaf-numbers
 - 0130.surrounded-regions
 - 0131.palindrome-partitioning
 - 0139.word-break
 - 0144.binary-tree-preorder-traversal
 - 0150.evaluate-reverse-polish-notation
 - 0152.maximum-product-subarray 🖊
 - 0199.binary-tree-right-side-view
 - 0200.number-of-islands 🆕
 - 0201.bitwise-and-of-numbers-range 🖊
 - 0208.implement-trie-prefix-tree
 - 0209.minimum-size-subarray-sum
 - 0211.add-and-search-word-data-structure-design 🆕
 - 0215.kth-largest-element-in-an-array 🆕
 - 0221.maximal-square
 - 0229.majority-element-ii 🆕
 - 0230.kth-smallest-element-in-a-bst
 - 0236.lowest-common-ancestor-of-a-binary-tree
 - 0238.product-of-array-except-self
 - 0240.search-a-2-d-matrix-ii
 - 0279.perfect-squares
 - 0309.best-time-to-buy-and-sell-stock-with-cooldown
 - 0322.coin-change
 - 0328.odd-even-linked-list
 - 0334.increasing-triplet-subsequence
 - 0365.water-and-jug-problem
 - 0378.kth-smallest-element-in-a-sorted-matrix
 - 0380.insert-delete-getrandom-o1🆕
 - 0416.partition-equal-subset-sum
 - 0445.add-two-numbers-ii
 - 0454.4-sum-ii
 - 0474.ones-and-zeros
 - 0494.target-sum
 - 0516.longest-palindromic-subsequence
 - 0518.coin-change-2
 - 0547.friend-circles 🆕
 - 0609.find-duplicate-file-in-system
 - 0875.koko-eating-bananas
 - 0877.stone-game
 - 0887.super-egg-drop
 - 0900.rle-iterator
 - 0912.sort-an-array 🆕
 - 0935.knight-dialer 🆕
 - 1011.capacity-to-ship-packages-within-d-days 🆕
 - 1014.best-sightseeing-pair 🆕
 - 1015.smallest-integer-divisible-by-k 🆕
 - 1019.next-greater-node-in-linked-list 🆕
 - 1020.number-of-enclaves 🆕
 - 1023.camelcase-matching 🆕
 - 1031.maximum-sum-of-two-non-overlapping-subarrays
 - 1104.path-in-zigzag-labelled-binary-tree 🆕
 - 1131.maximum-of-absolute-value-expression 🆕
 - 1186.maximum-subarray-sum-with-one-deletion 🆕
 - 1218.longest-arithmetic-subsequence-of-given-difference 🆕
 - 1227.airplane-seat-assignment-probability 🆕
 - 1261.find-elements-in-a-contaminated-binary-tree 🆕
 - 1262.greatest-sum-divisible-by-three 🆕
 - 1297.maximum-number-of-occurrences-of-a-substring 🆕
 - 1310.xor-queries-of-a-subarray 🆕
 - 1334.find-the-city-with-the-smallest-number-of-neighbors-at-a-threshold-distance 🆕
 
- 0004.median-of-two-sorted-array
 - 0023.merge-k-sorted-lists
 - 0025.reverse-nodes-in-k-group 🆕
 - 0030.substring-with-concatenation-of-all-words
 - 0032.longest-valid-parentheses
 - 0042.trapping-rain-water
 - 0084.largest-rectangle-in-histogram 🆕
 - 0085.maximal-rectangle 🆕
 - 0124.binary-tree-maximum-path-sum
 - 0128.longest-consecutive-sequence
 - 0145.binary-tree-postorder-traversal
 - 0146.lru-cache
 - 0212.word-search-ii 🆕
 - 0239.sliding-window-maximum
 - 0295.find-median-from-data-stream 🆕
 - 0301.remove-invalid-parentheses
 - 0335.self-crossPing 🆕
 - 0460.lfu-cache 🆕
 - 0472.concatenated-words 🆕
 - 0493.reverse-pairs 🆕
 - 1168.optimize-water-distribution-in-a-village 🆕
 
Anki 主要分为两个部分:一部分是关键点到题目的映射,另一部分是题目到思路,关键点,代码的映射。
全部卡片都在 anki-card
使用方法:
anki - 文件 - 导入 - 下拉格式选择“打包的 anki 集合”,然后选中你下载好的文件,确定即可。
更多关于 anki 使用方法的请查看 anki 官网
目前已更新卡片一览(仅列举正面):
- 二分法解决问题的关键点是什么,相关问题有哪些?
 - 如何用栈的特点来简化操作, 涉及到的题目有哪些?
 - 双指针问题的思路以及相关题目有哪些?
 - 滑动窗口问题的思路以及相关题目有哪些?
 - 回溯法解题的思路以及相关题目有哪些?
 - 数论解决问题的关键点是什么,相关问题有哪些?
 - 位运算解决问题的关键点是什么,相关问题有哪些?
 
已加入的题目有:#2 #3 #11
每日一题是在交流群(包括微信和 qq)里通过 issues 来进行的一种活动,大家一起 解一道题,这样讨论问题更加集中,会得到更多的反馈。而且 这些题目可以被记录下来,日后会进行筛选添加到仓库的题解模块。
- 
LeetCode 换皮题目集锦
 - 
滑动窗口(思路 + 模板)#3 #76 #209 #438 #862 #904 #930 #992 #1004 #1234 #1248
 
我重新整理了下自己的公众号,并且我还给它换了一个名字脑洞前端,它是一个帮助你打开大前端新世界大门的钥匙 🔑,在这里你可以听到新奇的观点,看到一些技术尝新,还会收到系统性总结和思考。
在这里我会尽量通过图的形式来阐述一些概念和逻辑,帮助大家快速理解,图解是我的目标。
之后我的文章会同步到微信公众号 脑洞前端 ,你可以关注获取最新的文章,并和我进行交流。
另外你可以回复大前端进大前端微信交流群, 回复 leetcode 拉你进 leetcode 微信群,如果想加入 qq 群,请回复 qq。
- 如果有想法和创意,请提 issue 或者进群提
 - 如果想贡献代码,请提 PR
关于如何提交题解,我写了一份 指南
 - 如果需要修改项目中图片,这里 存放了项目中绘制图的源代码, 大家可以用 draw.io 打开进行编辑。
 
感谢为这个项目作出贡献的所有 小伙伴











