刷题建议步骤
求职硬通货:一,好的学历,这个要下血本。本科,可以考研,读研。专科,可以专升本,再考研,读研,二,软考,一年考两次,有些科目考一次。考完再找工作的时间成本太高。三,刷题。四,项目经验,理论最重要,但这东西无法量化,主观性太强。
一,学校学习、网课学习、自学一门语言。
二,考过计算机二级或把试题刷熟练。
三,https://zerotrac.github.io/leetcode_problem_rating/#/ 按难道分从低到高把力扣1700分以下的题刷一遍。早期(800题)没有收集难度分,不刷。注意:如果题目涉及到大学数学和算法,请换种容易理解的解法。没有容易理解的解法,则忽略此题。这样的题几乎不存在。孤立的知识点,难学,易忘,学起来的效率低得惊人。
四,按知识点把力扣1700到2000分的题刷一遍。比如:依次刷 前缀和1700到2000分的题目,二分查找1700到2000分的题目 ⋯ \cdots ⋯. 可以参考各网站大家的题单,我的题单基本上是2000分以上的,计划2024年7月1号开始做1700分的题解。
五,按知识点刷2000到2300分的题。
六,按知识点刷洛谷的题,这一步我还要摸索。
以我在新三版公司的经验,实习生大约要1400分,新手正式员工大约1700分。那刷更高的分数有什么意义呢?
一,在小公司当头目,大约需要2000分。算法只是要求之一,而且非主要要求。
二,进大公司,大约需要2100分。算法只是要求之一,而且非主要要求。
三,当算法工程师。
四,爱好。就像刷怪那样。
专科生30岁是个坎,本科生37岁是个坎。如果没把握过,建议刷到2100分。这样主考官至少原意和你谈谈。
力扣对新人非常友好:一,直接告诉那个测试用例有问题。二,不需要处理输入输出。
力扣不适合老人:周赛第一题到第三题,难度分跨度大约400分,周赛第四题(困难)难度分跨度大约1200分。难度分相差400分,很难做出来。难度分相差200,能做出来,但花的时间太多。周赛时,无法得分;学习时,效率太低。
五大算法
五大算法:分治、动态规划、贪心、回溯、分支界限法。
分治和动态规划都是将问题拆分成若干子问题,分治的子问题往往是相互独立的,动态规划的子问题往往相互依赖。回溯法往往求所有解,而分支限界法往往求任意一个解或最优解。回溯法往往是深度优先,分治界限法往往是广度优先或最优优先。
基本
数组
字符串
排序
矩阵
模拟
枚举
字符串匹配
桶排序
计数排序
基数排序
回文:中心扩展 马拉车
树上启发式合并
括号 数学表达式
字符串:前后缀分解。
贡献法
分组:
【状态机dp 状态压缩 分组】1994. 好子集的数目
【动态规划】【前缀和】【分组】2338. 统计理想数组的数目
算法
动态规划汇总
背包问题汇总
贪心(证明方法:反证法、数学归纳、临项交换、范围缩放、决策包容性) 反悔贪心
深度优先搜索汇总
二分查找算法合集
折半处理
广度优先搜索
回溯
递归
分治
记忆化搜索(大约2024年6月10号发布)
归并排序
快速选择
基础数据结构
哈希表
键值皆有序哈希映射(见二分查找)
树
二叉树
堆(优先队列)
栈汇总(大约2024年6月20号发)
图论知识汇总
链表
并查集
有序集合
二叉搜索树
队列
拓扑排序
最短路
单调队列
双向链表
最小生成树
欧拉回路
差分数组(大约2024年7月1号发)
高级数据结构
前缀树(字典树)大约2024年 6月10号发布
线段树汇总
树状数组
后缀数组
单调栈分类、封装和总结
图论知识汇总
强连通分量 双连通分量
技巧
双指针
位运算、状态压缩、子集状态压缩汇总
C++算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频
计数
C++算法:滑动窗口总结
哈希函数
滚动哈希
扫描线
数学
基础数学
质数、最大公约数、菲蜀定理
数论
几何
组合数学汇总
博弈
随机化
概率与统计
水塘抽样
拒绝采样
其他
脑筋急转弯
扩展阅读
视频课程
有效学习:明确的目标 及时的反馈 拉伸区(难度合适),可以先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176
相关下载
想高屋建瓴的学习算法,请下载《喜缺全书算法册》doc版
https://download.csdn.net/download/he_zhidan/88348653
测试环境
操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。