# 志宏说算法模板与1000题
**Repository Path**: zhihongshuo/zhs_algorithm1000
## Basic Information
- **Project Name**: 志宏说算法模板与1000题
- **Description**: 以模板方式解读1000道面试算法题,帮助程序员学好算法,通过大厂算法面试!
- **Primary Language**: C++
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: https://zhihongshuo.com/
- **GVP Project**: No
## Statistics
- **Stars**: 19
- **Forks**: 2
- **Created**: 2024-04-28
- **Last Updated**: 2025-07-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 志宏说算法模板与1000题
## 一、大厂算法面试让程序员内耗
“我都38岁了,每天还得像应届生一样刷算法题,实在刷不动了,干程序员这一行太难了。”
2023年一位程序员朋友被辞退时说的一句话让我印象深刻!
然而这还只是开始,之后越来越多互联网公司收缩业务,大量程序员被辞退,类似的抱怨声也越来越多。
我在脉脉上搜了一下,发现算法内耗是程序员的一种普遍现象:[大厂算法面试让程序员内耗](./大厂算法面试让程序员内耗.md)
程序员本应是个用技术改变世界的群体,现在却被算法内耗掉了大量时间精力,这是对高学历人才的极大浪费。
程序员为什么会因算法内耗呢?
因为虽然算法在工作生活中基本用不上,但互联网大厂在招聘时很喜欢考。
可以说,如果程序员算法功底不行,想通过算法进入互联网大厂是几乎不可能的。
算法又不像前后端技术一样有各种八股文可以做考前突击,算法可准备的只有像LeetCode之类的数千道算法题。
程序员大多工作繁忙,绝大多数程序员每年刷的算法题不足50道,非常优秀的程序员通常也只能刷100-200题。
然而就算程序员不用上班,不干别的,专注刷题,每年刷500道以上的算法题,这就够了吗?
答案是否定的,因为刷题的过程非常零散不成体系,往往刷了后面的题,忘了前面的题,实际也只相当于200-300题的效果。
就算本次刷题效果显著,通过了大厂的面试,程序员两三年跳一次槽很正常,3年后再跳槽时,会发现之前刷过的题几乎全部忘了,又得花一年半载时间重新刷题。
因此,从企业的视角看,正因为算法难以考前突击,所以才成了判断程序员技术功底的重要依据。
但从程序员视角看,刷算法题除了应对某次跳槽外,对实际工作生活几乎没有任何作用,这大大增加了程序员的内耗和焦虑感。
[算法思维6个层次](./算法思维6个层次.md)
## 二、算法难学的原因在于没有合适的学习资料
刷大量算法题,为什么难以记住呢?
因为刷题的过程非常零散不成体系,我们的大脑很擅长记住整体结构,不擅长记忆细枝末节。
就拿动态规划题来说,刷题只能看到一个个孤立题目的孤立解法,无法看到动态规划题整体上有哪些解题思路,每个解题思路可以解决哪些题目,每个具体题目的解法在整个解题思路体系中是什么位置。
之所以存在这样的问题,根源在于算法学习资料存在断层,断层处正是程序员难以跨越的鸿沟。
目前市面上的算法学习资料分为两种:
* 偏理论型,比如《算法导论》。
这类资料有足够的高度,可以让我们知道什么是链表、二叉树、动态规划等,并配备了适量的例题。
但面试算法题的变化太多了,这些抽象的理论并没有讲清楚面试算法题的各种可能变化,离互联网大厂面试的要求还相距甚远。
* 偏实践型,比如LeetCode上的题解。
这类资料比较贴近算法面试,每刷一道题,确实就能学会一道题,刷多了碰到面试原题或类似题目的概率就大。
但这类资料的高度不够,程序员看到的是各种繁琐的细节和眼花缭乱的变化,容易迷失自我,找不到方向。
【**高度足够高+能应对各种变化**】的学习资料的缺失,是程序员难以跨越算法理论到算法实践的鸿沟的原因所在。
## 三、【志宏说算法模板与1000题】正在填补这一空白
为帮程序员彻底解决算法内耗,2024年我从LeetCode中精选了1000+算法题,尝试总结出变化的规律。
我发现很多算法题看起来差异很大,但解题思路却是类似的,1000+算法题可总结为约150种解题思路。
让程序员学完并记住1000+道题几乎不太可能,但让程序员学完并记住150种解题思路却是完全可行的。
我将每种解题思路整理成一个解题模板,程序员学会这些解题模板,即可快速学会1000+算法题,学习效率提升6倍。
比如:1000+道算法题中动态规划题有190+道,可总结为约30+个解题模板。
见:[动态规划模板体系](./动态规划解题模板/01动态规划模板体系.md)
于是我2025年在gitee.com和github.com上创建了【志宏说算法模板与1000题】仓库,来分享我的整理成果。
gitee:https://gitee.com/zhihongshuo/zhs_algorithm1000
github:https://github.com/zhihongshuo/zhs_algorithm1000
git仓库的内容目标,不是介绍算法基础知识,也不是介绍奇特的算法技巧,
而是尝试用尽可能少的解题模板,解出1000+算法题,帮助程序员跨越算法鸿沟,化解算法内耗。
因此,本内容属算法高阶内容,需要学员具备一定的编程、数据结构、算法的基础知识。
适用人群:
* 想通过互联网大厂【算法面试】的程序员
* 想在【算法竞赛】中取得不错名次的学生
## 四、研发进展与计划
将1000道算法题总结为约150个解题模板,是件很耗时的事情,我计划在2025年逐步完成。
互联网大厂面试时最喜欢考的算法题类型是:链表、二叉树、动态规划。
如果想考察程序员的编码水平,往往会出链表和二叉树题,如果想考察算法思维,往往会出动态规划题。
动态规划也是公认的最难的题目类型。
因此,研发过程大致分为三个阶段:
1. 动态规划题模板:已完成
30+个模板解190+道动态规划题:[动态规划模板体系](./动态规划解题模板/01动态规划模板体系.md)
2. 链表题+二叉树题模板:研发中
33道链表题+97道二叉树题
3. 其他题型模板:未启动
## 五、鹅圈子与微信群
如果你的目标是参加国内互联网大厂的算法面试,学完git仓库的内容,再适量刷题,应对【对应题型】的面试题,基本问题不大。
### 【鹅圈子】
如果你学习算法的过程中,需要老师给你答疑解惑,那你可付费加入【鹅圈子】,我会亲自为你答疑。
如果你的目标是参加算法竞赛,或参加外企算法面试,那你可付费加入【鹅圈子】,学习全部模板及例题。
加入【鹅圈子】的优势:
* 学习全部算法模板和例题。
* 进学员群,跟其他大厂、竞赛同学一起交流算法。
* 添加我的个人微信,我会亲自为你答疑,[查看答疑案例](./算法答疑案例.md)。
微信扫此小程序码可加入【鹅圈子】:
随着内容的不断完善,【鹅圈子】的价格也会逐步提高,因此越早加入越划算。
### 【微信群】
如果你在学习过程中,希望跟其他同学一起交流算法和程序员人生,可免费加入微信群:
进群遇到问题请加客服微信:zhihong-pub
|志宏说算法交流群|志宏说程序员交流群|
|:-:|:-:|
|
|
|
|交流学习算法
算法面试+算法竞赛|交流程序员人生
成长、工作、生活、情感等|
## 六、关于我
姓名:贺志宏
教育背景:清华大学计算机系硕士
工作经历:腾讯9年资深后端开发
Email:zhihong@zhihongshuo.com
网站:https://zhihongshuo.com