- 博客(52)
- 资源 (2)
- 收藏
- 关注
原创 新手如何爬虫上道?从小白进阶成大白,看这一篇文章足够(里面有很多爬虫例子)
里面有大量的例子供大家进行爬虫小白的学习,因为爬虫我只学了一周,所以还有很多不懂的地方,但是新手上道用这篇文章就够啦!!!!
2024-01-28 15:12:50
1206
原创 前缀和以及哈希表优化
最近在刷题的时候,遇到了一些前缀和结合子数组的题目,这些题目,有一个共同的特性,就是说,刚开始都能够想利用前缀和进行优化,然后再结合子序列的左右端点进行枚举,最后确定哪一个区间或者哪一些是能够满足我们的题目要求,但是有一个问题就是,我们在枚举区间的两个端点的时间复杂度是O(n2)的,所以一旦题目数据给的特别大的时候,就会过不了,这个时候就需要利用题目的相关性质结合哈希表解题,把时间复杂度降到O(n)以下,就可以过了,这里整理了相关类似的题目,此专题也会持续的更新…
2022-09-02 11:22:47
691
4
原创 家里蹲了七个月的大学生活是怎么度过的?
在家里蹲了7个月的大学生活真的就不会太精彩了吗?no!no!no,只要俺想,俺一样能够足够的精彩嘿嘿!
2022-08-15 13:59:57
486
2
原创 我真的理解了背包dp问题吗?
正如标题所说,再次复习背包相关的dp问题的时候,才发现以前理解背包dp问题太过于用自己的想象力,终于好好的写了一下有关背包dp的一些推导的过程!
2022-08-11 13:38:45
373
原创 状压dp和状态机dp题目汇总(持续更新)
这一篇博客总结自己在学习状态压缩dp时候的一个题目汇总吧。这里主要分为两块吧,一个是状态机模型,另外就是状压dp,因为两个都是由某一个状态转移到另外一个状态,所以整合在一起,也能更加的对状态到状态之间的转移有个比较好的一个逻辑内联吧。...
2022-08-09 18:15:12
495
原创 线性DP题目汇总(持续更新)
此篇章主要整理一些关于线性dp的题目,很多题目其实都可以被挂上线性dp的标志,比如最熟悉的最长上升子序列啊,最长公共子序列啊等等,并且线性dp在自己写力扣周赛的题目的时候,真的会时不时出几道,然后刚好利用这些题目加上dp分析的方法,把题目好好写一写。...
2022-08-09 18:13:40
2947
原创 图论之Kruskal,最小生成树如何优雅解题?
对于最小生成树的问题来说的话,我们可以发现如果直接利用我们的dijkstra算法,每次去遍历一个点,然后通过一个点的话去更新其他的所有边,在这样的过程中,换一个理解的方式来看的话,不过就是把我们所有的最短的边连起来,也就是,我们尝试将所有有关系的点通过最短的概念,连接起来,然后能够通过这样的方式,在集合内部已经连好的点,就不会在继续连,也就是我们一旦选定两个点进行边的连接的话,我们一定会选最短的,然后最后我们判断一下是否所有的点到最后会被连接到一个集合之中就好了。...
2022-07-30 12:33:51
146
原创 图论之Prim,最小生成树该怎么解?
此篇主要针对图论中的求最小生成树的一种算法Prim算法,这个算法其实整体的结构和dijkstra算法是相似的,所以整体的思路也和dijkstra算法有异曲同工之妙。首先,讲一下自己对最小生成树这个概念的理解。包含图中所有结点,且整个结点形成的一张图中不含有任何环,一旦再多连接两个结点形成一条边,一定会生成一个环的一个结构图。在一个图中找到的所有生成树中,所有边加起来的权值最小的那一棵生成树是一颗最小生成树。...
2022-07-30 12:32:40
127
原创 图论之Floyd,多源图最短路如何暴力美学?
在之前的图论算法中有说过基本都是从一个原点出发,然后定义其他点到原点的一个距离最小值。那假设这个原点都是不固定的,而题目刚好要求去求任意两个点之间的最小距离的话,那么这个时候暴力美学就非常凸显出其独有的重要性了。那么本章总结的Floyd算法,就是能够解决这样的问题。...
2022-07-30 12:31:25
192
原创 你知道图论的spfa吗?
对于之前有写到的Dijkstra算法,我们发现他只能用来计算边的权值为正的情况,这其实也就是为什么我们需要开一个st数组,对于一个已经被更新过的点来说,他一旦用于更新其他点的时候,我们就不需要再考虑再利用这个点再次更新其他的点。但是呢,如果点之间的边是负值的时候,就必须去遍历一下所有的边,因为存在负值的时候,负数加正数是会把距离缩短的,所以呢就可以利用遍历所有边的办法去更新点到原点的距离。......
2022-07-28 18:40:14
234
原创 你知道图论的Dijkstra吗?
本篇开始进行有关图论Dijkstra的题目整理,首先会整理两个模板,针对dijkstra的朴素版本和优化版本,此系列也会一直的更新,对于之后做到相关的题目,会放到此专题当中!而对于这个算法来说,一般求的是对于一些有向图,从某个点走到另外的一个终点不同路径的最小距离,注意此时有向边的权值必须为正数才行!......
2022-07-28 18:39:39
120
原创 模拟小根堆
本篇文章主要以小根堆为例子,做一些有关小根堆的知识点笔记,前面主要就是堆排序,后面呢是一个题目的相关介绍,由于那个题目的特殊性,所以不多加赘述,这一篇主要是以堆能够实现的一些操作为例子,记录一下堆的一些应用。本篇主要受众是已经建立在知道二叉树的建立的基础上,进行堆的记录。如果不太了解二叉树的uu们可以先去了解一下二叉树的建立,知道左右孩子的节点是怎么表示的,然后食用一下这篇文章。堆呢,其实原型就是一颗完全二叉树,我们知道,完全二叉树必须保证树儿子的完整性,即一个节点为x的父亲,如果他有孩子,那么他左右孩子的
2022-07-03 18:53:06
410
原创 模拟单链表
在很久之前的博客sheepice已经有过对于链表的相关介绍,而当时那篇文章的访问量也比较大,说明还是对大家有一定的帮助,那么这篇文章将继续对链表进行一个介绍,而本次所记录的是单链表的数组模拟,其实就是采用了一个虚表头的做法。为什么要用数组进行模拟呢,主要有以下几点:初始化的操作主要进行下面几点:②向头节点插入一个元素大家可以看一下上面的图,如果要在整个链表最左边插入一个值,我们只需要四步走③删除第k个节点后面的一个数这个操作其实比较的简单,我们只需要让第k个节点的next指针指向它下一个节点的下一个
2022-07-03 18:52:11
279
原创 Trie数-字典树
字典树是一个比较神奇的东西。试想如果我们要用程序去存一些字符串,但是相同的字符不能放在不同的空间里面,比如有两个字符串abc,abf,我们发现ab是相同的,就需要我们把他们存在一个数组空间?我们应该怎么做到呢?再来就是为什么叫字典树呢,其实很形象的说明了他的存储方式,就是字典。我们在查字典的时候,都会先查一个单词的首字母,然后在对应的地方继续依次查后面的字母。也就是我们可以利用数组完成这样的存储但是由于一般数组的空间有限,字典树会占据很多的空间,一个abc就占用了3个单位空间,所以在用的时候是需要注意一下数
2022-07-03 18:50:02
326
原创 KMP匹配字符串
这一章记录的是自己学习KMP算法的一个笔记吧。我觉得KMP虽然目前没有用到相关的算法,但是他的思想很妙,很多人在刚开始会非常不理解这个算法的由来。而我也是写了好几遍才能够真的说掌握了一些KMP算法。其实主要记住一点就是,KMP完成了字符串与本身进行比较的一个思路。所有字符串下标从1开始说真的我觉得相关一些数组的定义是整个这个算法的核心首先就是题目给的两个串,一个比较长的叫做模式串,另外一个叫做子串,题目的要求就是子串在模式串出现的位置或者出现的次数我们再看最难理解的一个ne数组的定义,最长子串的公共前后缀长
2022-07-03 18:48:28
137
原创 shell语法-4
一、文件重定向每个进程默认打开3个文件描述符:stdin:标准输入,从命令行读取数据,文件描述符为0stdout:标准输出,从命令行输出数据,文件描述符为1stderr:标准错误输出,向命令行输出数据,文件描述符为2可以用文件重定向将这三个文件重定向到其他的文件当中①重定向命令列表命令说明command > file将stdout重定向到file文件内command < file将stdin重定向到file文件内command >>
2022-05-09 19:31:33
169
原创 shell语法-3
一、判断语句①if…them形式if conditionthen 语句1 语句2fi例如a=3b=4if [ "$a" -lt "$b" ] && [ "$a" -gt 2 ]then echo ${a}在范围内fi#输出,3在范围内②单层if-elseif conditionthen 语句1 语句2else 语句1 语句2fi例如a=3b=4if ! ["$a" -lt "$b"] echo ${a}不小于${b}els.
2022-05-09 19:30:55
227
原创 shell语法-2
一、expr命令expr 命令用户求表达式的值,格式如下expr 表达式表达式说明用空格隔开每一项用\去转义一些特定字符对包含空格和其他特殊字符的字符串要用引号括起来最后是返回到stdout(标准输出)中输出结果:所以用$(command) 或者 ‘commmand’进行输出。例如str=“Hello World”echo 'expr length "$str"' #输出字符串长度12echo 'expr index "$str" aWd' #输出aWd任一个字符最先出现的位
2022-05-06 21:54:10
240
原创 shell语法-1
一、概论shell是我们通过命令行与操作系统沟通的语言。可以直接在命令行中运行,也可以将一套逻辑组织成一个文件,方便复用。linux系统默认使用bash脚本①vim test.sh文件之后(创建一个文件)#首行指明bash为默认的脚本解释器#! /bin/bash#输出hello worldecho "hello world"②运行方式bash + 文件名 : bash test.sh当 ls -l test.sh之后,会发现只有r,w的读写可以进行,需要先加入一个可以执行的操
2022-05-06 21:52:50
329
原创 离散化操作
一、离散化操作什么是离散化操作,这里给一个简单的解答。假设给你一个数组,元素有1,2,200,30000,400000。按照元素的个数,将最终的数组变成1,2,3,4,5的操作就是离散化。离散化的操作有什么好处呢?如果数据非常大,但是元素的个数非常小。我们离散化操作就会节省空间,同时通过这样的操作能够让我们优化时间复杂度!二、实现方法为了满足这样的要求(假设有n个数),我们只需要让每一个数对应一个下标,而这个下标就是离散化他对应的区间[1,n][1,n][1,n]里面的某一个数!这里主要采用c
2022-05-01 18:27:30
490
原创 AcWing刷题1
一、前言最近发现一个算法题目的宝藏平台,上面的题目其实都是比较偏向应用题了,所以可能更适合用来提高自己笔试的能力。在这里还没有入口的uu们可以在这里看一看哦:AcWing刷题网站今天其实做了上周的周赛的一个题目,才发现自己很多基础的算法模板都没有掌握,所以只能说我算法还是没有真正的入门吧!今天其实也少稍微的学习了一下,关于区间合并的一个模板问题,题目描述如下:二、题目描述三、思路本题的思路需要一些推导,也不是特别难,我们可以看到假设a数组中的ai=aja_i = a_jai=aj的话,那么由
2022-04-26 19:57:54
3455
1
原创 生活分享1
一、写在前面一直认为生活不应该只有学业还有各种方面的压力,一定要有属于自己的诗和远方,开启生活篇的博客就是希望能够分享一下sheepice在生活里面遇到的很多很多事情吧!也相当于没有写技术博客的一个补充吧哈哈!二、《朋友请听好》这是一档我很喜欢的综艺,说是一个综艺节目但是我更觉得它的意义在于一个情感上的慰藉港湾,在这里面有很多很多温暖的声音,有很多很多暖心的故事。当然在这里面我也收获了很多很多的慰藉!①“永远要相信世上的善意”一位打电话来的女生,因为是自己一人在外打拼,所以自己就租了一个单间的房
2022-04-19 14:14:17
242
原创 单调队列初探
一、前言今天总结的一个东西叫做单调队列,其实单调队列这个名字一听就知道是跟数据结构有关。而之所以命名为这个,肯定说明了他代表队列里面的元素都是成为一个单调的形式存在在队列中的。今天主要介绍两种实现单调队列的方法吧。首先考虑这样的一个题目:这是洛谷的P1886滑动窗口单调队列。①题目描述如下:数据范围为:1<=n<=k<=1061 <= n <= k <= 10^61<=n<=k<=106。②解题思路我们不妨以求某个窗口的最小值为例子(最大值
2022-04-18 17:56:11
787
原创 力扣刷题5
一、前言sheepice的刷力扣篇章,虽然现在比较忙,但是如果有空,且写到一些比较有启发的力扣题的时候希望能够发一点点题解,这些题解的灵感来源于我自己看了很多神犇的题解,真的会很有收获。sheepice的优快云地址:大家感兴趣也可以去里面,说不定能学到一点东西哦!二、数位dp初刷三、思路这题其实如果用我们高中学的组合的思想,可以做。因为他本身就是一个组合的题目,也就是说,最简单的思路就是,分析不同位数情况下构成的小于n的情况。所以很容易得到,一共只有两种情况情况一:构成的数字比要求数字的位
2022-04-14 18:25:43
129
原创 力扣刷题4
一、前言sheepice的刷力扣篇章,虽然现在比较忙,但是如果有空,且写到一些比较有启发的力扣题的时候希望能够发一点点题解,这些题解的灵感来源于我自己看了很多神犇的题解,真的会很有收获。sheepice的博客地址:大家感兴趣也可以去里面,说不定能学到一点东西哦!二、力扣的某“简单题”这个题目其实说真的,刚开始觉得真的挺难的,然后看到是个简单题我就知道数据的范围肯定给的非常的小,果不其然,数据范围只给了50,哈哈哈,所以第一次做这个题目的时候,这不就是简单的暴力枚举的题目吧,因为这题是三叶姐给到的“
2022-04-12 21:35:56
159
原创 力扣刷题3
一、前言sheepice开启新的篇章了,虽然现在比较忙,但是如果有空,且写到一些比较有启发的力扣题的时候希望能够发一点点题解,毕竟三叶姐坚持了那么久,也给我有了很好的榜样作用!sheepice的博客地址:大家感兴趣也可以去里面,说不定能学到一点东西哦!二、leetcode每日一题今天的每日一题难度不大,主要想记录一下关系哈希表的容器相关写法吧!①思路:采用哈希表记录下来所有出现过的数和对应的次数,然后利用绝对值大小进行排序(这个排序可以方便我们对表进行一次遍历,只需要看arr[i]对应的ar
2022-04-05 20:52:16
216
原创 力扣刷题2
一、前言sheepice开启新的篇章了,虽然现在比较忙,但是如果有空,且写到一些比较有启发的力扣题的时候希望能够发一点点题解,毕竟三叶姐坚持了那么久,也给我有了很好的榜样作用!sheepice的优快云地址:大家感兴趣也可以去里面,说不定能学到一点东西哦!二、leetcode每日一题说实话,这一题在刚开始用双指针的时候,是有些地方没有想明白的,比如当最后的右指针移动到某个位置把k次数用完后,左指针应该移动到哪个位置,所以开始死磕了好久,最后也是积累了这样一种滑动窗口的办法吧。其实就是不要等右指针
2022-04-05 20:50:34
273
原创 力扣刷题1
一、前言sheepice开启新的篇章了,虽然现在比较忙,但是如果有空,且写到一些比较有启发的力扣题的时候希望能够发一点点题解,毕竟三叶姐坚持了那么久,也给我有了很好的榜样作用!sheepice的优快云地址:大家感兴趣也可以去里面,说不定能学到一点东西哦!二、leecode每日一题①首先是今天的每日一题,题目如下:②题目解答(1)//版本1,逐步的进行判断class Solution {public: bool hasAlternatingBits(int n) {
2022-04-05 12:55:08
596
2
原创 树状数组初学
一、树状数组的初学之前学习过前缀和和差分的一些知识就觉得挺神奇的,然后昨天刷到力扣的每日一题之后发现,好像树状数组在多区间的修改和查询方面很神奇,包括之后要学习的线段树(能解决所有树状数组的问题)可能会更加有收获吧。二、一些小小的理解①lowbit的理解在线段数组里面有这么一个重要的函数,也是能够构造整个树状数组的核心吧!代码只有一行,但是对于我这种萌新来说,刚开始还是很难理解的。代码如下://寻找一个数最低位的1int lowbit(int x) { return x &am
2022-04-05 12:45:00
1009
原创 最短路径及拓展
目录一、前言二、路径(1)三、路径拓展解题误区解题全过程最终运行的结果四、水话一、前言最近有开始再刷三叶姐的leetbook《最短路径问题》,小白可能得重新地进行一些系统化的学习了。虽然里面有一些题以前是做过的,但是还是会有一部分的问题。因为已经有好久没有发博客了,出于大一下的课程有点多,希望从现在开始能够每个周末进行博客的发送吧,还有,个人的博客网站也已经搭建完成,以后那个网站可能会分享一些自己慢慢学后端的文章吧!点这里:sheepice's Blog。今天主要..
2022-03-26 13:43:42
1143
原创 贪心(按照下标排序)
一、前言继续划水更新题解吧!二、题目详情三、输入输出样例四、题目解读这一题属于一个排序的题目。而且里面带有贪心的思想,简单的概述此题就是说,如果给你一串数字1-n;例如1-8,然后每个数字下面有0和1的区别,那么为了满足题目的意思呢!就是需要把是0的分为一组,把1的分为一组,然后在0的那一组里面的数字要比较小,在1那一组的数字要比较大。例如题目给的样例。那么分好组后呢?依据题目意思,要让最后分别对应下来的差值更加小,我们不难想到要利用贪心的思想。至于这里的贪心很好理解..
2022-01-05 19:39:21
514
原创 深搜(DFS)刷题(一)
DFS每日一刷,第一次刷这种难度题目一次AC,AC居然是happy new year!!CF网站有心了鸭!我有在好好的复习英语哦!
2022-01-04 19:42:33
3641
2
原创 二分模板刷题(一)
一、前言因为这几周是期末周了,但是自己确实又不想鸽下博客不管,所以干脆这几天就是放一些简单的模板题目,仅供大家熟悉之前所写的一些模板套路,今天也是很久以前拿到手的一个洛谷题目,第一次刷那个题目的时候,因为是用二分,但是由于自己对二分边界的处理依旧不是特别的熟悉,所以之前做那个题目的时候第一次交还没AC呢,但是这次已经能够非常得心应手的用之前所教的模板写出来了这一题了,所以希望到这的读者,如果不熟悉本蒟蒻的模板,可以点击这里回去复习一下!因为这题目很容易读懂,所以在此不加以分析了!二、题目描述
2022-01-03 14:38:15
423
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人