
新手模板类题目
文章平均质量分 81
算法里面会有很多模板类的题目,这样的题目必须牢牢刻在自己的心中啊,毕竟是模板啊,很多的题目都会利用模板加一些自己的思考,说不定就能够解出来了呢
sheep.ice
加油!
展开
-
我真的理解了背包dp问题吗?
正如标题所说,再次复习背包相关的dp问题的时候,才发现以前理解背包dp问题太过于用自己的想象力,终于好好的写了一下有关背包dp的一些推导的过程!原创 2022-08-11 13:38:45 · 380 阅读 · 0 评论 -
状压dp和状态机dp题目汇总(持续更新)
这一篇博客总结自己在学习状态压缩dp时候的一个题目汇总吧。这里主要分为两块吧,一个是状态机模型,另外就是状压dp,因为两个都是由某一个状态转移到另外一个状态,所以整合在一起,也能更加的对状态到状态之间的转移有个比较好的一个逻辑内联吧。...原创 2022-08-09 18:15:12 · 502 阅读 · 0 评论 -
线性DP题目汇总(持续更新)
此篇章主要整理一些关于线性dp的题目,很多题目其实都可以被挂上线性dp的标志,比如最熟悉的最长上升子序列啊,最长公共子序列啊等等,并且线性dp在自己写力扣周赛的题目的时候,真的会时不时出几道,然后刚好利用这些题目加上dp分析的方法,把题目好好写一写。...原创 2022-08-09 18:13:40 · 2951 阅读 · 0 评论 -
图论之Kruskal,最小生成树如何优雅解题?
对于最小生成树的问题来说的话,我们可以发现如果直接利用我们的dijkstra算法,每次去遍历一个点,然后通过一个点的话去更新其他的所有边,在这样的过程中,换一个理解的方式来看的话,不过就是把我们所有的最短的边连起来,也就是,我们尝试将所有有关系的点通过最短的概念,连接起来,然后能够通过这样的方式,在集合内部已经连好的点,就不会在继续连,也就是我们一旦选定两个点进行边的连接的话,我们一定会选最短的,然后最后我们判断一下是否所有的点到最后会被连接到一个集合之中就好了。...原创 2022-07-30 12:33:51 · 150 阅读 · 0 评论 -
图论之Prim,最小生成树该怎么解?
此篇主要针对图论中的求最小生成树的一种算法Prim算法,这个算法其实整体的结构和dijkstra算法是相似的,所以整体的思路也和dijkstra算法有异曲同工之妙。首先,讲一下自己对最小生成树这个概念的理解。包含图中所有结点,且整个结点形成的一张图中不含有任何环,一旦再多连接两个结点形成一条边,一定会生成一个环的一个结构图。在一个图中找到的所有生成树中,所有边加起来的权值最小的那一棵生成树是一颗最小生成树。...原创 2022-07-30 12:32:40 · 131 阅读 · 0 评论 -
图论之Floyd,多源图最短路如何暴力美学?
在之前的图论算法中有说过基本都是从一个原点出发,然后定义其他点到原点的一个距离最小值。那假设这个原点都是不固定的,而题目刚好要求去求任意两个点之间的最小距离的话,那么这个时候暴力美学就非常凸显出其独有的重要性了。那么本章总结的Floyd算法,就是能够解决这样的问题。...原创 2022-07-30 12:31:25 · 196 阅读 · 0 评论 -
你知道图论的spfa吗?
对于之前有写到的Dijkstra算法,我们发现他只能用来计算边的权值为正的情况,这其实也就是为什么我们需要开一个st数组,对于一个已经被更新过的点来说,他一旦用于更新其他点的时候,我们就不需要再考虑再利用这个点再次更新其他的点。但是呢,如果点之间的边是负值的时候,就必须去遍历一下所有的边,因为存在负值的时候,负数加正数是会把距离缩短的,所以呢就可以利用遍历所有边的办法去更新点到原点的距离。......原创 2022-07-28 18:40:14 · 238 阅读 · 0 评论 -
你知道图论的Dijkstra吗?
本篇开始进行有关图论Dijkstra的题目整理,首先会整理两个模板,针对dijkstra的朴素版本和优化版本,此系列也会一直的更新,对于之后做到相关的题目,会放到此专题当中!而对于这个算法来说,一般求的是对于一些有向图,从某个点走到另外的一个终点不同路径的最小距离,注意此时有向边的权值必须为正数才行!......原创 2022-07-28 18:39:39 · 122 阅读 · 0 评论 -
模拟小根堆
本篇文章主要以小根堆为例子,做一些有关小根堆的知识点笔记,前面主要就是堆排序,后面呢是一个题目的相关介绍,由于那个题目的特殊性,所以不多加赘述,这一篇主要是以堆能够实现的一些操作为例子,记录一下堆的一些应用。本篇主要受众是已经建立在知道二叉树的建立的基础上,进行堆的记录。如果不太了解二叉树的uu们可以先去了解一下二叉树的建立,知道左右孩子的节点是怎么表示的,然后食用一下这篇文章。堆呢,其实原型就是一颗完全二叉树,我们知道,完全二叉树必须保证树儿子的完整性,即一个节点为x的父亲,如果他有孩子,那么他左右孩子的原创 2022-07-03 18:53:06 · 414 阅读 · 0 评论 -
模拟单链表
在很久之前的博客sheepice已经有过对于链表的相关介绍,而当时那篇文章的访问量也比较大,说明还是对大家有一定的帮助,那么这篇文章将继续对链表进行一个介绍,而本次所记录的是单链表的数组模拟,其实就是采用了一个虚表头的做法。为什么要用数组进行模拟呢,主要有以下几点:初始化的操作主要进行下面几点:②向头节点插入一个元素大家可以看一下上面的图,如果要在整个链表最左边插入一个值,我们只需要四步走③删除第k个节点后面的一个数这个操作其实比较的简单,我们只需要让第k个节点的next指针指向它下一个节点的下一个原创 2022-07-03 18:52:11 · 285 阅读 · 0 评论 -
KMP匹配字符串
这一章记录的是自己学习KMP算法的一个笔记吧。我觉得KMP虽然目前没有用到相关的算法,但是他的思想很妙,很多人在刚开始会非常不理解这个算法的由来。而我也是写了好几遍才能够真的说掌握了一些KMP算法。其实主要记住一点就是,KMP完成了字符串与本身进行比较的一个思路。所有字符串下标从1开始说真的我觉得相关一些数组的定义是整个这个算法的核心首先就是题目给的两个串,一个比较长的叫做模式串,另外一个叫做子串,题目的要求就是子串在模式串出现的位置或者出现的次数我们再看最难理解的一个ne数组的定义,最长子串的公共前后缀长原创 2022-07-03 18:48:28 · 143 阅读 · 0 评论 -
离散化操作
一、离散化操作什么是离散化操作,这里给一个简单的解答。假设给你一个数组,元素有1,2,200,30000,400000。按照元素的个数,将最终的数组变成1,2,3,4,5的操作就是离散化。离散化的操作有什么好处呢?如果数据非常大,但是元素的个数非常小。我们离散化操作就会节省空间,同时通过这样的操作能够让我们优化时间复杂度!二、实现方法为了满足这样的要求(假设有n个数),我们只需要让每一个数对应一个下标,而这个下标就是离散化他对应的区间[1,n][1,n][1,n]里面的某一个数!这里主要采用c原创 2022-05-01 18:27:30 · 495 阅读 · 0 评论 -
AcWing刷题1
一、前言最近发现一个算法题目的宝藏平台,上面的题目其实都是比较偏向应用题了,所以可能更适合用来提高自己笔试的能力。在这里还没有入口的uu们可以在这里看一看哦:AcWing刷题网站今天其实做了上周的周赛的一个题目,才发现自己很多基础的算法模板都没有掌握,所以只能说我算法还是没有真正的入门吧!今天其实也少稍微的学习了一下,关于区间合并的一个模板问题,题目描述如下:二、题目描述三、思路本题的思路需要一些推导,也不是特别难,我们可以看到假设a数组中的ai=aja_i = a_jai=aj的话,那么由原创 2022-04-26 19:57:54 · 3470 阅读 · 1 评论 -
单调队列初探
一、前言今天总结的一个东西叫做单调队列,其实单调队列这个名字一听就知道是跟数据结构有关。而之所以命名为这个,肯定说明了他代表队列里面的元素都是成为一个单调的形式存在在队列中的。今天主要介绍两种实现单调队列的方法吧。首先考虑这样的一个题目:这是洛谷的P1886滑动窗口单调队列。①题目描述如下:数据范围为:1<=n<=k<=1061 <= n <= k <= 10^61<=n<=k<=106。②解题思路我们不妨以求某个窗口的最小值为例子(最大值原创 2022-04-18 17:56:11 · 789 阅读 · 0 评论 -
线段树初探
线段树原创 2022-04-13 15:43:29 · 149 阅读 · 0 评论 -
力扣刷题4
一、前言sheepice的刷力扣篇章,虽然现在比较忙,但是如果有空,且写到一些比较有启发的力扣题的时候希望能够发一点点题解,这些题解的灵感来源于我自己看了很多神犇的题解,真的会很有收获。sheepice的博客地址:大家感兴趣也可以去里面,说不定能学到一点东西哦!二、力扣的某“简单题”这个题目其实说真的,刚开始觉得真的挺难的,然后看到是个简单题我就知道数据的范围肯定给的非常的小,果不其然,数据范围只给了50,哈哈哈,所以第一次做这个题目的时候,这不就是简单的暴力枚举的题目吧,因为这题是三叶姐给到的“原创 2022-04-12 21:35:56 · 162 阅读 · 0 评论 -
力扣刷题2
一、前言sheepice开启新的篇章了,虽然现在比较忙,但是如果有空,且写到一些比较有启发的力扣题的时候希望能够发一点点题解,毕竟三叶姐坚持了那么久,也给我有了很好的榜样作用!sheepice的优快云地址:大家感兴趣也可以去里面,说不定能学到一点东西哦!二、leetcode每日一题说实话,这一题在刚开始用双指针的时候,是有些地方没有想明白的,比如当最后的右指针移动到某个位置把k次数用完后,左指针应该移动到哪个位置,所以开始死磕了好久,最后也是积累了这样一种滑动窗口的办法吧。其实就是不要等右指针原创 2022-04-05 20:50:34 · 276 阅读 · 0 评论 -
树状数组初学
一、树状数组的初学之前学习过前缀和和差分的一些知识就觉得挺神奇的,然后昨天刷到力扣的每日一题之后发现,好像树状数组在多区间的修改和查询方面很神奇,包括之后要学习的线段树(能解决所有树状数组的问题)可能会更加有收获吧。二、一些小小的理解①lowbit的理解在线段数组里面有这么一个重要的函数,也是能够构造整个树状数组的核心吧!代码只有一行,但是对于我这种萌新来说,刚开始还是很难理解的。代码如下://寻找一个数最低位的1int lowbit(int x) { return x &am原创 2022-04-05 12:45:00 · 1013 阅读 · 0 评论 -
最短路径及拓展
目录一、前言二、路径(1)三、路径拓展解题误区解题全过程最终运行的结果四、水话一、前言最近有开始再刷三叶姐的leetbook《最短路径问题》,小白可能得重新地进行一些系统化的学习了。虽然里面有一些题以前是做过的,但是还是会有一部分的问题。因为已经有好久没有发博客了,出于大一下的课程有点多,希望从现在开始能够每个周末进行博客的发送吧,还有,个人的博客网站也已经搭建完成,以后那个网站可能会分享一些自己慢慢学后端的文章吧!点这里:sheepice's Blog。今天主要..原创 2022-03-26 13:43:42 · 1152 阅读 · 0 评论 -
四个数之和+双指针大法
四数之和原创 2022-01-16 15:41:44 · 530 阅读 · 0 评论 -
删除原字符串的子串(c++内置find函数好啊)
删除原字符串的子串,指针的解法+STL内置函数find的解法!!原创 2022-01-08 12:49:09 · 705 阅读 · 0 评论 -
二分模板刷题(一)
一、前言因为这几周是期末周了,但是自己确实又不想鸽下博客不管,所以干脆这几天就是放一些简单的模板题目,仅供大家熟悉之前所写的一些模板套路,今天也是很久以前拿到手的一个洛谷题目,第一次刷那个题目的时候,因为是用二分,但是由于自己对二分边界的处理依旧不是特别的熟悉,所以之前做那个题目的时候第一次交还没AC呢,但是这次已经能够非常得心应手的用之前所教的模板写出来了这一题了,所以希望到这的读者,如果不熟悉本蒟蒻的模板,可以点击这里回去复习一下!因为这题目很容易读懂,所以在此不加以分析了!二、题目描述原创 2022-01-03 14:38:15 · 426 阅读 · 0 评论 -
组合数的计算
有关组合数的计算,里面包含快速幂还有取模运算的相关分析,然后又是划水水的一天天原创 2022-01-02 16:01:33 · 6405 阅读 · 0 评论 -
位运算子集刷题(一)
位运算子集刷题原创 2022-01-01 21:00:07 · 4396 阅读 · 0 评论 -
组合,全排列以及子集超详细讲解
应该是特别特别宇宙无敌详细的有关排列组合子集的相关解答了,此篇文章汇集了DFS,位运算的相关解法,相信阅读本篇文章的同学们一定会有大大滴收获的!原创 2022-01-01 20:39:59 · 2565 阅读 · 0 评论 -
链表大法极好
链表大法好啊原创 2021-12-25 20:17:37 · 1129 阅读 · 0 评论 -
归并排序以及逆序对
手撕归并排序以及逆序对数量原创 2021-12-28 16:06:59 · 468 阅读 · 0 评论 -
输入带有空格的字符串
随笔如何进行含空格的字符串输入原创 2021-12-26 21:26:15 · 467 阅读 · 0 评论 -
字符串哈希
目录问题描述字符串哈希具体步骤①先确定一套进制。②将a前缀以及b转化成为哈希值。③如何让a数组保持一个长度窗口滑动④最后进行哈希值的比较即可一些小细节问题描述大家在刷算法的时候一定有听过这样的算法题目。如果给你一个较长的字符串a,以及一个较短的字符串b,然后问b是否是a的一个子串,如果是的话,b在a中出现了几次?大家一开始见到这个题目的时候无疑不会想到一种暴力的解法,就是让b串一个一个往后移动跟a进行比较。就像:这样的方法显然当数据大了的时候会超时,.原创 2021-12-24 21:02:47 · 1541 阅读 · 0 评论 -
行列式的辗转相减
行列式计算器,但是不要超过10哦!原创 2021-12-29 16:26:47 · 1544 阅读 · 0 评论