算法练习 100 天 精华总结

共 851字,需浏览 2分钟

 ·

2020-11-12 20:47

Python与算法社区
已原创428篇,干货满满
值得星标


01

02

03


三步加星标





增强算法能力,不是一朝一夕的事,需要持久的付出努力,同时也要经常思考、反思和总结,不断去揣摩数据结构和算法的巧妙。


过去几个月,算法刷题日记里 600多位星友,一起走过100天刷题,今天做个简单总结。


刷题练习的数据结构,包括:


1. 一维结构:线性顺序存储的数组,线性乱序存储的链表,按桶装入数组的哈希结构,只在一头出入的特殊数组栈(包括单调栈),队列


2. 二维:非线性的二叉树;具有优先顺序、根要么最大或最小的堆结构,也是特殊的一种二叉树


3. 以及经常用到的双指针及特殊的快慢双指针:


 

基于以上数据结构,经常涉及到的算法有如下这些,其中:


1. 基础思维部分最符合我们的思考习惯;


2. 递归思维常和数学归纳分析相关;


3. 分治思维就是划大区间为小区间,分别治理后,重新合并的思维;


4. 哈希比较好理解,O(1)找到某个键的对应值;


5. 动态规划前100天并没有重点训练,因为它是所有算法中最需要训练的思维之一,状态转移方程并不是那么容易找到,但又是加速算法的常用技巧之一,AI训练模型的反向传播算法,强化学习智能体在环境中的学习过程,都是动态规划思维的具体应用;


6. 贪心求得最优解的场景其实不太多,往往实际中用来求得近似解;


7. 位运算有时解决问题干净利落;


8. 前缀和是一类特殊的结构,注意体会前缀和的解体技巧



不断揣摩,方能举一反三。

若你对程序员的必备算法有兴趣,或者想学习以上100天的具体题目和解答,以及想跟着队伍一起刷题365天,欢迎加入 算法刷题日记 知识星球:

凡是365天,打卡满300天的,退还所有费用,人格担保。

因此,加入这里,养成练习算法习惯,最后完全是免费的!


浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

分享
举报