推荐一个学算法的 GitHub 项目

共 2826字,需浏览 6分钟

 ·

2020-09-16 23:28




点击上方蓝色“程序猿DD”,选择“设为星标”


回复“资源”获取独家整理的学习资料!





这个项目的名称不那么文雅,直接抛地址:


https://github.com/labuladong/fucking-algorithm 


目前已经收获61.2k的Star,小编读了几篇内容,都是非常干的干货!


所以今天推荐给大家!


仓库介绍


本仓库总共 60 多篇原创文章,都是基于 LeetCode 的题目,涵盖了所有题型和技巧,而且一定要做到举一反三,通俗易懂,绝不是简单的代码堆砌,后面有目录。


我先吐槽几句。刷题刷题,刷的是题,培养的是思维,本仓库的目的就是传递这种算法思维。我要是只写一个包含 LeetCode 题目代码的仓库,有个锤子用?没有思路解释,没有思维框架,顶多写个时间复杂度,那玩意一眼就能看出来。


只想要答案的话很容易,题目评论区五花八门的答案,动不动就秀 python 一行代码解决,有那么多人点赞。问题是,你去做算法题,是去学习编程语言的奇技淫巧的,还是学习算法思维的呢?你的快乐,到底源自复制别人的一行代码通过测试,已完成题目 +1,还是源自自己通过逻辑推理和算法框架不看答案写出解法?


网上总有大佬喷我,说我写这玩意太基础了,根本没必要啰嗦。我只能说大家刷算法就是找工作吃饭的,不是打竞赛的,我也是一路摸爬滚打过来的,我们要的是清楚明白有所得,不是故弄玄虚无所指。不想办法做到通俗易懂,难道要上来先把《算法导论》吹上天,然后把人家都心怀敬仰地劝退?


做啥事情做多了,都能发现套路的,我把各种算法套路框架总结出来,相信可以帮助其他人少走弯路。我这个纯靠自学的小童鞋,花了一年时间刷题和总结,自己写了一份算法小抄,后面有目录,这里就不废话了。






看看它的目录


相信你也会奉上你的Star!






  • 第零章、必读系列



    • 学习算法和刷题的框架思维


    • 学习数据结构和算法读什么书


    • 动态规划解题框架


    • 动态规划答疑篇


    • 回溯算法解题框架


    • 为了学会二分查找,我写了首诗


    • 滑动窗口解题框架


    • 双指针技巧解题框架


    • Linux的进程、线程、文件描述符是什么


    • Git/SQL/正则表达式的在线练习平台



  • 第一章、动态规划系列



    • 动态规划详解


    • 动态规划答疑篇


    • 动态规划设计:最长递增子序列


    • 编辑距离


    • 经典动态规划问题:高楼扔鸡蛋


    • 经典动态规划问题:高楼扔鸡蛋(进阶)


    • 动态规划之子序列问题解题模板


    • 动态规划之博弈问题


    • 贪心算法之区间调度问题


    • 动态规划之KMP字符匹配算法


    • 团灭 LeetCode 股票买卖问题


    • 团灭 LeetCode 打家劫舍问题


    • 动态规划之四键键盘


    • 动态规划之正则表达


    • 最长公共子序列



  • 第二章、数据结构系列



    • 学习算法和刷题的思路指南


    • 学习数据结构和算法读什么书


    • 二叉堆详解实现优先级队列


    • LRU算法详解


    • 二叉搜索树操作集锦


    • 特殊数据结构:单调栈


    • 特殊数据结构:单调队列


    • 设计Twitter


    • 递归反转链表的一部分


    • 队列实现栈|栈实现队列



  • 第三章、算法思维系列



    • 算法学习之路


    • 回溯算法详解


    • 回溯算法团灭排列、组合、子集问题


    • 二分查找详解


    • 双指针技巧总结


    • 滑动窗口技巧


    • twoSum问题的核心思想


    • 常用的位操作


    • 拆解复杂问题:实现计算器


    • 烧饼排序


    • 前缀和技巧


    • 字符串乘法


    • FloodFill算法详解及应用


    • 区间调度之区间合并问题


    • 区间调度之区间交集问题


    • 信封嵌套问题


    • 几个反直觉的概率问题


    • 洗牌算法


    • 递归详解



  • 第四章、高频面试系列



    • 如何实现LRU算法


    • 如何高效寻找素数


    • 如何计算编辑距离


    • 如何运用二分查找算法


    • 如何高效解决接雨水问题


    • 如何去除有序数组的重复元素


    • 如何寻找最长回文子串


    • 如何k个一组反转链表


    • 如何判定括号合法性


    • 如何寻找消失的元素


    • 如何寻找缺失和重复的元素


    • 如何判断回文链表


    • 如何在无限序列中随机抽取元素


    • 如何调度考生的座位


    • Union-Find算法详解


    • Union-Find算法应用


    • 一行代码就能解决的算法题


    • 二分查找高效判定子序列



  • 第五章、计算机技术



    • Linux的进程、线程、文件描述符是什么


    • 一文看懂 session 和 cookie


    • 关于 Linux shell 你必须知道的


    • 加密算法的前身今世


    • Git/SQL/正则表达式的在线练习平台













往期推荐








使用IntelliJ IDEA查看类图,内容极度舒适







VS Code的7个开源替代品







Stack Overflow 2020 开发者调查中的 21 条关键结果







京东把 Elasticsearch 用得真牛逼!日均5亿订单查询完美解决!







后端必备:15000 字的 SQL 语句大全









最后,推荐一个专注分享后端面试要点的公众号「后端面试那些事儿」,置顶标星。每日一篇常问的面试问题,秀的一批~扫描下方二维码关注!







浏览 56
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报