算法题目总结

当前进度:

现在每天都会写一份leetcode的当天签到题题解,每日都会更新。

目前只写了部分的贪心算法,动态规划,模拟,双指针,暴力枚举,栈,BFS,DFS,队列等算法题解,后期有时间的话会在b站上录一期关于算法的视频给大家参考。

引言

  其实出这类博客是我一直想做的事情,之前刷算法都是盲目的刷题,没有建立一个知识体系,碰到题目都是凭感觉来做的。希望这篇博客能够给大家一点帮助,同时也是监督博主每天算法的学习。


1. 模拟

1.1 介绍

        模拟很容易理解,就是题目他怎么说,我怎么做,比如他让我给一个盒子加一滴水,我们就给这个变量加1,这类题目一般在周赛、竞赛的签到题出现,当然我们也不能因此小看这类题目,因为有的题目咱是真的模拟不了一点。

1.2 简单

1.3 中等

1.4 困难


2. 动态规划

2.1 介绍

        动态规划简称DP,是一种分而治之的思想。所谓分而治之就是:如果有一个大工程,我们会将它分为很多个小工程,然后逐一解决最后反推合并,将这个大工程完成。

        举个例子,如果我们求1 + 1,很容易得到2;如果求1 + 1 + 1,我们可以用2 + 1 = 3,而不是1+1+1=3这样逐一相加;如果求 1 + 1 + 1 + 1,我们可以用3 + 1 = 4,而不是1+1+1+1=4这样逐一相加,以此类推。动态规划能够将一些问题的子问题状态存储,然后当前状态是基于子状态进行运算。

2.2 简单

2.3 中等

2.4 困难


3. 双指针

3.1 介绍

3.2 简单


4. 滑动窗口

4.1 介绍

4.2 简单

4.3 中等

4.4 困难


5. 暴力枚举

5.1 介绍

5.2 简单


6. 栈

6.1 介绍

6.4 困难


7. 链表


8. 队列

中等


9. 哈希表

9.1 介绍

哈希表(Hash Table)是一种基于键值对存储数据的数据结构。它的特点是在 O(1) 的时间复杂度内完成查找、插入和删除等操作。在算法练习中,我们通常用哈希表来记录一些数值和它对应的某种数值。比如我们可以求数组中元素出现的数量可以借助它等等,换句话来说哈希表我觉得是利用空间来换取时间,它查找元素的时间复杂度为O(1)。

9.2 简单

9.3 中等


10. 广度优先搜索(BFS)

10.1 介绍

BFS算法是我们在学习数据结构中遇到的一个搜索算法。它的核心思想是优先遍历当前结点的所有邻居结点。它通常应用于树结构或者图结构类型的题目。其中对于树结构,它相当于层序遍历,即一层一层的遍历。

举个栗子,小王今年大三了还是个单身狗,于是他决定在操场上偶遇女生,这不,他有了5个心仪的女生并获取到她们的联系方式,但他很纠结不知道追求哪个女生,于是学习了BFS算法的他决定同时追求这5个女生,直到他收到所有女生的回应(同意 或 不同意)。这个就是我对BFS的理解,换句话来说就是广撒网——海王。

10.3 中等

10.4 困难


11. 深度优先搜索(DFS)

11.1 介绍

对于DFS算法,我觉得有BFS身影的地方肯定有DFS算法。他俩都是搜索算法,只是执行的方式不同,它通常也是应用与树结构或者图结构类型的题目。对于树结构,它也有三个专属的名称(前序遍历、中序遍历、后序遍历)。即一直往下搜索,直到不能遍历位置。

举个例子,还是小王,他前面追求的5个女生发现他同时追求5个女生的事情后骂他渣男(具体例子看BFS介绍),于是小王决定深情一把,他又找到了5个女生的联系方式,这次他决定不撞南墙不回头,他刚开始只追求1号女生,直到1号女生给出回应(同意 或 不同意),得到1号女生回应后他才开始追求2号女生,以此类推。这个是我对DFS的理解,换句话来说就是深情男子。

11.2 简单

11.3 中等

11.4 困难


12. 堆

12.1 介绍

12.2 简单

12.3 中等

12.4 困难


13. 贪心算法

13.3 中等


递归

中等

结语

        博主努力更新中。。。

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小人物₍˄·͈༝·͈˄*₎◞ ̑̑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值