专栏首页GitHubDailyGitHub 标星 1.6 万!最全中文 LeetCode 题解项目助你学好算法!

GitHub 标星 1.6 万!最全中文 LeetCode 题解项目助你学好算法!

本文转自量子位,作者铜灵

当代程序员的困惑可能大致分为两类:一是 "35 岁之后我该去往何处",二是 "如何才能进入互联网大厂工作"。

要弄清一个问题可能过于复杂,但第二个问题很好 get:

不少过来人建议,最好的方式就是:刷!题!

Google、微软、Facebook 等公司,就会通过做题的方式面试应聘者。

那么,如果能掌握这套题…… 嘿嘿嘿……

这一次,不仅有大厂面试题可以透露,连整套题答题思路也来了。

GitHub 上有个叫 lucifer 的中国小哥哥,将 LeetCode 题库中数百道题目的解题过程全盘分享,解题思路和代码都有。

https://github.com/azl397985856/leetcode

民间曾一度流传,LeetCode 上,基本就是互联网大厂拿来应聘面试者的考题了。

来看看。

比课后答案详细

打开这套资源,首先你会发现它是份纯中文的攻略,语言友好度 ?分。

内容共分为四部分

一是 LeetCode 经典题目的解析,包括思路、关键点和具体的代码实现。

二是对于数据结构与算法的总结

三是 anki 卡片, 将 LeetCode 题目按照一定的方式记录在 anki 中,方便记忆

四是计划, 这里会记录将来要加入到以上三个部分内容

经典题目解析是重头戏,小哥哥的介绍得非常详细。

LeetCode 上的题目有数百道,小哥将其分为了简单、中等、困难三种难度,估摸着自己水平后,你可以直接选择最适合自己的题目,最大化利用学习时间。

每一道题都有对应的编号,戳进后呈现方式直白清晰明了。

比如在第 20 题 “有效括号” 中,作者先放上了 LeetCode 里的题目地址,贴上了题干的描述:

这道题在 “简单” 难度行列,主要是判断在各种情况下字符串是否有效。小哥哥先提示了这道题的解题思路,认为应该就字符串为左半边还是右半边有括号进行分类讨论:

还推荐了邓俊辉老师此前讲解类似问题的答疑视频。

给出了动图方便进一步理解:

思路讲解过后,如果你还是不太明白,可以看看下面小哥哥提示的关键点分析

最后,小哥哥放出了自己的答案,附上了自己的代码:

到此,这道题就算解得差不多了,这看起来课后习题上的参考答案丰富多了~

还没完,如果你想在此题的基础上继续深究下去,还可以看看小哥哥给出最后的扩展建议

在数据结构与算法总结部分,小哥哥目前介绍了五个知识点,分别为数据结构、二叉树的遍历、动态规划、哈夫曼编码和游程编码和布隆过滤器。

每一个知识点的介绍篇幅不长,图文并茂。

和其他的知识点介绍资料不同,在介绍这几个知识点时,小哥哥用题库中的具体例子进行了分析:

剩下的题目,差不多也是以这种方式介绍的。通过一道题,让你把整个知识点完全吃透。

学完这套题,说不定大厂就离你就更近一步了呢

本文分享自微信公众号 - GitHubDaily(GitHubDaily)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java多线程的可见性与有序性

    如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。

    全菜工程师小辉
  • 快速理解设计模式之创建型模式

    要想更全面理解设计模式,建议先查看Spring的设计模式快速入门干货,前半部分是设计模式的分类和综述,与Spring无关。

    全菜工程师小辉
  • 有关JIT你需要知道的

    JVM对代码执行的优化可分为运行时(runtime)优化和即时编译器(JIT)优化。 运行时优化主要是解释执行和动态编译通用的一些机制。比如说锁机制(如偏斜锁)...

    全菜工程师小辉
  • Swoole引擎原理的快速入门干货

    过去半年使用PHP和Java两种技术栈完成了一个游戏服务器项目。由于项目中有高频的网络请求,所以PHP技术栈尝试使用Swoole引擎(基于事件的高性能异步并行网...

    全菜工程师小辉
  • Java类加载及对象创建过程详解

    验证阶段作用是保证Class文件的字节流包含的信息符合JVM规范,不会给JVM造成危害。如果验证失败,就会抛出一个java.lang.VerifyError异常...

    全菜工程师小辉
  • 详解Java多线程锁之synchronized

    synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。

    全菜工程师小辉
  • JDK源码分析-LinkedBlockingQueue

    前文「JDK源码分析-ArrayBlockingQueue」分析了 ArrayBlockingQueue 的代码实现,LinkedBlockingQueue 也...

    o对酒当歌
  • 有关跳跃表的干货都在这里

    跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找...

    全菜工程师小辉
  • 还在用Executors创建线程池?小心内存溢出

    线程池不建议使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风...

    全菜工程师小辉
  • 图解一致性hash算法和实现

    一致性hash算法,是麻省理工学院1997年提出的一种算法,目前主要应用于分布式缓存当中。 一致性hash算法可以有效地解决分布式存储结构下动态增加和删除节点所...

    全菜工程师小辉

扫码关注云+社区

领取腾讯云代金券