# 志宏说算法模板与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