自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(337)
  • 收藏
  • 关注

原创 Day80 | 灵神 | 反转链表 翻倍以链表形式表示的数字

看做是两个head相加就直接转变为昨天写的两数相加II了。

2025-04-02 08:51:44 200

原创 26考研 | 王道 | 数据结构 | 第四章 串

当i=2匹配失败的时候,看前i-1个字母组成的s即 a,由于a既是首字母又是尾字母,那最长相等前后缀就是0,再加1就是1。当i=6匹配失败的时候,看前i-1个字母组成的s即 ababa,那最长相等前后缀aba,就是3,再加1就是4。当i=5匹配失败的时候,看前i-1个字母组成的s即 abab,那最长相等前后缀ab,就是2,再加1就是3。当i=4匹配失败的时候,看前i-1个字母组成的s即 aba,那最长相等前后缀a,就是1,再加1就是2。优:下标和位序一一对应,不需要转换。即为 0,1,1,2,3,4。

2025-04-01 20:45:39 1051

原创 Day79 | 灵神 | 反转链表 两数相加 两数相加II

笔者一开始想的是在原数组上面进行改动,但是那个不知道两个链表长度就很麻烦,一个链表结束后还得遍历另外一个链表,并且最后返回结果也只能返回长的链表,这真的很麻烦所以要新创建一个链表,用新创建的链表节点记录val的值只要l1 l2 或者进位有一个不为0 那就是要继续循环,继续创建新的节点也不需要新的变量,用进位carry来记录值即可最后carry除以10,大于10就是1表示有进位,小于10就是0,也就是没进位。

2025-04-01 09:08:21 236

原创 26考研 | 王道 |数据结构 | 第二章 线性表

线性表是具有相同数据类型的n(n>0)个数据元素的有限序列。(其中n为表长,当n=0时线性表是一个空表。若用L命名线性表,则其一般表示为)1.存在惟一的第一个元素2.存在惟一的最后一个元素3.除第一个元素之外,每个元素均只有一个直接前驱4.除最后一个元素之外,每个元素均只有一个直接后继1.ai是线性表中的“第i个”元素线性表中的位序。2.a1是表头元素;an是表尾元素。3.除第一个元素外,每个元素有且仅有一个直接前驱:除最后一个元素外,每个元素有且仅有一个直接后继。

2025-03-31 21:20:21 1038

原创 26考研 | 王道 | 数据结构 | 第三章 栈和队列

3.若扫描到运算符或界限符,则按照“中缀转后缀”相同的逻辑压入运算符栈(期间也会弹出运算符,每当弹出一个运算符时,就需要再弹出两个操作数栈的栈顶元素并执行相应运算,运算结果再压回操作数栈)存在一个一维数组里面可以节省快一半的空间,可以建立一个映射函数,用矩阵的行号和列号直接对应访问一维数组,如下图所示(i>=j的情况)的话,利用a(i,j)=a(j,i)的性质,转换为访问下三角区域即可,表现在公式中就是i,j的位置互换。若扫描到运算符,则弹出两个栈顶元素,执行相应的运算,运算结果压回栈顶,回到步骤1;

2025-03-31 21:19:04 1242

原创 Day78 | 灵神 | 反转链表 两两交换链表中的节点

1.建立虚拟头结点t,作为要反转部分[1,2]的前一个节点,以后每反转一部分都要更新和保存反转部分的前一个节点。6.更新并保存t,把t更新为1,即pre,因为pre是下一段要反转部分[3,4]的前一个节点。3.建立两个指针指向要交换的两个节点,cur指向2,pre指向1。用第一个例子[1,2,3,4,5]作为说明,就是说,步骤为。2.再次建立一个临时节点q保存要反转部分的后一个结点[3]这道题就是下面这道题的k==2的情况。5.把反转部分接到原来链表上。4.反转指针把2指向1。

2025-03-31 18:29:56 150

原创 Day77 | 灵神 | 反转链表 反转链表 反转链表II K个一组翻转链表

笔者之前做过所以做的很快,简单来说用p指向现在的结点,pre指向p的前一个节点,用指向p的下一个节点然后就是让p->next指向前一个节点pre,这是反转再让前一个结点变成p,p变成q,这是往后继续遍历也可以看灵神的视频讲解,有图示很快理解。

2025-03-31 18:29:20 285

原创 Day76 | 灵神 | 二分查找 寻找旋转排序数组中的最小值II 寻找峰值II

直接去看灵神的题解吧,笔者往后复习这道题的时候再回来看吧。太难了,笔者鸽了,大家看灵神的吧,等多做做题再说吧。

2025-03-29 15:47:55 136

原创 Day75 | 灵神 | 二分查找 寻找旋转排序数组中的最小值 搜索旋转排序数组

如果。

2025-03-28 10:42:02 373

原创 Day74 | 灵神 | 二分查找 寻找峰值

这道题笔者完全没有思路,不知道怎么用二分,实在有点想不通,诶,多刷吧,下面说说笔者的理解大家可以先看一下这个视频。

2025-03-27 10:49:35 375

原创 二分查找(二分答案)套路模板

本题就看sum是大于还是小于h了,本题是sum小于等于h,找的是左边界,只要mid满足条件,那么大于mid的肯定都满足条件,所以更新r,这是顺向的思维,你要非写成sum>h返回true的话也不是不行。更新l时,更新的是l=mid+1,但是满足条件的是mid,而不是mid+1,很有可能mid+1就不符合条件,如果mid+1符合条件,那么l和r一定会更新到这里并且循环不会结束的。:当答案增大或减小时,问题的可行性呈现单调变化(如更大的间隔可能导致更少的可行解),这个就是我举例的那道题的类型。

2025-03-26 11:36:11 1491

原创 Day73 | 灵神 | 二分查找 最大合金数

我们二分的是合金数量,那么我们的mid自然就是合金数量,而我们的check函数判断的就是有budget这个预算和stock即我们拥有的金属这两个条件下,可不可以合成mid这么多的数量,如果可以合成,那么说明mid符合条件,我们可以继续往大的放大mid,即l=mid+1,合成不了mid这么多,那就说明mid大了,要往小的走。也可以是,最小的那个stock那个材料花费是1,所需也是1,但是其他的stock的值全都大于最小的那个stock+budget,即可以把min(stock)+budget给用完。

2025-03-26 10:30:00 346

原创 Day72 | 灵神 | 二分查找 礼盒的最大甜蜜度

那么二分区间即甜蜜度的区间是多少呢?最大值肯定就是max(price)-min(price)=r了,最小值那肯定就是0了,即数组数字都一样,区间就是[0,r],笔者用的左闭右开,那就是[0,r+1)还是老套路,先看二分的是什么,这道题求的是甜蜜度,那么二分的是甜蜜度,而不是原数组。昨天说:灵神说看到最小化最大值就肯定是二分查找,这点要记住。说实话我这个不太会写,看了灵神的也还是不太理解。今天就碰到了最大化最小值,这个也是二分。大家可以去看看,懂了的话可以来教教博主。然后套路模板就可以写了。

2025-03-25 08:40:37 155

原创 总结MarkDown常用语法

【代码】总结MarkDown常用语法。

2025-03-24 11:32:06 329

原创 Day71 | 灵神 | 二分查找 最小化数组中的最大值

由于我们二分的是最大值,所以我们就设定一个上界,这个上界就是此次的mid,即所求的符合条件的最大值,如果数组中的数字大于mid,即nums[i]>mid,那就那多余的部分,即nums[i]-mid,减到旁边的数字上面去,减到最后,如果小于的话就不作操作,最后如果数组所有的数都小于等于mid,那我们说这个mid是符合条件的。最大值肯定就是max(nums)了,最小值那肯定就是0了,或者从1开始二分也可以,都是非负数,区间就是[0,max(nums)],笔者用的左闭右开,那就是[0,max(nums)+1)

2025-03-24 10:57:30 492

原创 hexo+butterfly搭建博客网站总结篇

下面的功能笔者均未实现,等以后有时间了再慢慢实现吧如果有感兴趣的读者呢,可以去官方文档或者去自己搜索进行完成Butterfly 文檔(一) 快速開始 | Butterfly1.标题等文字样式、字体、颜色的改变2.友链功能3.“关于"页面4.相册页面5.背景图和顶部图合成一张图6.鼠标拖动特效7.除了首页其他页面的标题也可以加入循环打字的效果8.页脚图片修改9.在线聊天可能还有很多功能我还没提到,大家感兴趣的可以去官方文档自行搜索。

2025-03-22 20:29:08 673

原创 hexo+butterfly博客功能完善和美化(四)---博客上传

这个是用来控制你的页面和博客的相关信息的是markdown文件最上方以---分隔的区域,用于指定个别档案的变数。Page Front-matter 用于页面配置Post Front-matter 用于文章页配置如果标注可选的参数,可根据自己需要添加,不用全部都写在markdown里。

2025-03-22 20:27:21 613

原创 Bulk Rename Utility(BRU)——大批量重命名实用程序

Bulk Rename Utility(BRU)是一款免费的适用于 Windows 的文件重命名软件。BRU能帮助解决各种繁琐的重命名任务,个人人为比自己去写python程序处理更加方便,因为BRU的功能十分强大,且具有友好的GUI界面,且同样能够处理大批量重命名任务。

2025-03-22 20:02:42 481

原创 Day70 | 灵神 | 二分查找:完成旅途的最少时间

笔者的思路是,找到单次旅途时间最短的车,然后乘以totalTrips,那这样也不用管别的车跑了几次,因为只需要这一辆车就可以跑够totalTrips,所以这是一个最大值。一辆车的旅程其实就是总时间t除以单次时间time[i],而且是下取整,所以我们不需要做过多的处理。特别是传入check函数的t,那个形参的类型必须得是long long,笔者改了这个就通过了。从单调性来讲,如果t的时间可以正好完成旅途,那么t+1,t+2的时间一定也可以。现在我们首先要做的就是求出我们的二分区间,即时间t的范围。

2025-03-22 10:57:19 323

原创 hexo+butterfly博客功能完善和美化(三)---评论功能载入

由驱动的评论系统。让访客借助 GitHub 在你的网站上留下评论和反应吧!本项目受utterances强烈启发。开源。🌏无跟踪,无广告,永久免费。📡 🚫无需数据库。全部数据均储存在 GitHub Discussions 中。支持自定义主题!🌗支持多种语言。🌐高度可配置。🔧自动从 GitHub 拉取新评论与编辑。🔃可自建服务!🤳详细介绍请看Giscus 官网。

2025-03-21 21:03:49 622

原创 Day69 | 灵神 | 二分查找:爱吃香蕉的珂珂

注意,题目说piles的大小小于时间h,这使得我们很容易找到k的最大值,那就是数组的最大值,我每个小时吃这么多肯定可以吃得完,而最小值肯定不能是0,因为怎么都不可能吃完,所以从1开始。2.满足条件更新r还是l,那就看sum是大于还是小于h了,本题是sum小于等于h,找的是左边界,只要mid满足条件,那么大于mid的肯定都满足条件,所以更新r。有了昨天的H指数II,这道题只能说是 so easy,还是一样,piles只是用来写判断条件的,我们二分的是速度k。这个区间肯定都符合条件。然后继续往左收缩就是了。

2025-03-21 09:15:45 331

原创 Day68 | 灵神 | 二分查找:H指数II

首先要理解这个,这个比较容易,大家自行理解就好其次要知道,二分区间[l,r)内的性质我们还没有判断,就是我们不知道二分区间内的数是否满足条件,而二分区间外面的数字是已经被筛选过的,肯定满足条件的就像是[1,2,3,4,5,6)当我们二分区间为[3,4,5,6)的时候,我们肯定可以判断1,2是合法或者不合法的才会更新到[3,4,5,6)这个区间。

2025-03-20 09:51:06 311

原创 hexo+butterfly博客功能完善和美化(二)

到此就基本告一段落了,网站已经基本成型了,该有的也都有了后续看笔者精力再加入图片点击放大、评论区、在线聊天之类的功能吧尽量这周把如何上传博客给大家更新出来(但是今天耽搁一天考研的东西还没学(悲 )这是笔者做完上述功能和美化后的,欢迎大家来访问Darling的妙妙屋博客也就是为了测试功能随便传了两篇,后续我去试试在本地hexo上传再加hexo d部署和用git直接传到github有啥区别,感觉应该是一样的,如果只是上传博客的话,我完了试试再说(当然我测试传的那篇就是git使用,感兴趣的可以看看)

2025-03-19 18:09:44 1001

转载 Hexo添加Live2D看板娘+模型预览

01和02的json文件是空的,所以需要把live2d-widget-model-haru文件夹下的json文件复制进去。模型的GitHub地址:https://github.com/xiazeyu/live2d-widget-models。关于如何添加,可以看这里:https://www.jianshu.com/p/3a6342e16e57。use: live2d-widget-model-haru/01 或者。live2d-widget-model-haru模型需要安装。

2025-03-19 15:14:14 51

原创 hexo+butterfly博客功能完善和美化(一)

参考自博主试了试可以成功的比较基础的美化和功能,先更新一篇大家先看看,剩下的功能等博主自己实现了再更新吧。

2025-03-19 14:48:17 1289

原创 Day67 | 灵神 | 二分查找:统计公平数对的数目

val 的元素位置:若存在等于val的元素,返回第一个等于val的元素的迭代器;这时候你就发现呢我们只要用lower-nums[j]去找nums[i]的左边界,用upper-nums[j]去找nums[i]的右边界,那么在左右边界内的数字一定符合条件,也就是数对的数量。想的是在二分查找过程中把对数给统计了,check函数也是传入的nums[l],nums[r],lower,upper,按照题目给的条件去比较,然后判断符合条件不符合条件。插入元素保持有序:使用返回的迭代器插入新元素,可维持序列的有序性。

2025-03-19 09:54:29 828

原创 Day66 | 灵神 | 二分查找:咒语和药水的成功对数

遍历spells数组,然后里面套找左边界的二分查找就行,查找options数组里面的满足条件的左边界,找到之后求出左边界到数组末尾这个区间的长度就行。时间复杂度是遍历数组spells,二分查找options,一共O(nlogm)。再加上排序的时间复杂度O(mlogm)时间复杂度= O(nlogm)+O(mlogm)=O((n+m)logm)其实还是在数组里面去找左边界而已,只是在外面多套了一层数组的遍历。

2025-03-18 08:23:55 256

原创 用hexo初始化博客执行hexo init时碰到的问题

如果出现这样的报错和页面。

2025-03-17 20:16:30 319

原创 利用hexo+github部署属于自己的个人博客网站(2025年3月所写)

本篇博客仅限于利用hexo搭建博客,并且部署到github上面,让自己可以有一个访问的域名,不涉及博客的上传以及博客网站的美化。当然笔者博客上传和网站美化以后会再写一篇博客进行说明参考自这两篇博客混着看的,因为有的地方这篇不行另外一篇可以,所以我混着来的,而且有的地方可能版本太老了,就不太对了,笔者就再加上笔者自己的情况供大家参考了。

2025-03-17 20:14:51 1398 5

原创 深度学习与神经网络 | 邱锡鹏 | 第一章学习笔记

参考自下面这篇博客,笔者在此基础上写了写自己的理解,仅自己用来复习使用。

2025-03-17 17:58:51 857

原创 Day65 | 灵神 | 二分查找:红蓝染色法

34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)我觉得这个很重要,不管是定义左闭右开还是左闭右闭,在区间内的数字就是我们接下来要去判断的数字,看看是否满足条件而区间外的数字都是已经判断过的不满足条件的。

2025-03-17 10:03:20 662

原创 【Node】node.js安装与配置(详细步骤)

声明:笔者跟着这个安装的,但是途中有的地方不太相同,就把不同的地方做了修改。

2025-03-16 21:55:54 1002

原创 刷题总结 | 灵神 | 滑动窗口作业

这个一般都不需要,因为置为0可能就趋近于暴力做法了,而这道题可以用滑动窗口做,那肯定是不需要把l置为0的,如果非要置为0不可,那可能是左指针收缩条件没有找对。注:虽然左指针收缩条件的实现一般是解题的关键点,但是如果是比较困难题目,可能在统计子数组数量,如何记录答案,答案更新条件的地方也会比较难想,笔者觉得需要多积累经验才会做着舒服点。2.一开始做这方面题可能会想着的是,我在固定r时,把l移动了,那我在固定r+1的时候,需要不需要把l置为0?1.如何统计子数组的数量,基本有以下两种。

2025-03-16 10:42:10 880

原创 Day64 | 灵神 | 滑动窗口:最小覆盖子串

下面是笔者遇到的有答案但是没有更新的例子前面说到,我是用res存储答案,后面改为了用res_l,res_r存储左右端点,一开始我的初始化是可是这样就出现了一个问题,当的时候,就会发现,我的[l,r]和[res_l,和res_r]竟然是一样的,而更新答案的条件是那么就不会更新答案了要解决这个问题,只需要把res_l初始化为-1,然后看最后res_l是不是-1即可,是-1就没更新,返回空串,不是-1就更新了,返回[res_l,res_r]区间的子串即可下面是超出内存限制和没有修改前更新答案条件的代码。

2025-03-16 10:33:32 824

原创 汇编语言 | 王爽 | 学习笔记

我们对8086CPU的指令系统进行一下总结。读者若要详细了解8086指令系统中的各个指令的用,可以查看有关的指令手册。8086CPU提供以下几大类指令。数据传送指令等都是数据传送指令,这些指令实现寄存器和内存、寄器和寄存器之间的单个数据传送。算术运算指令等都是算术运算指令,这些指令实现存器和内存中的数据的算数运算。它们的执行结果影响标志寄存器的位。逻辑指令等都是逻辑指令。除了not指外,它们的执行结果都影响标志寄存器的相关标志位。转移指令。

2025-03-15 18:47:25 919

原创 Day63 | 灵神 | 滑动窗口:将x减到0的最小操作数

根据我们的思路,左指针收缩条件那就是当前子数组的和大于sum这个数,我们就收缩左指针,从而减小子数组的和,来和sum进行比较。这道题左指针收缩条件得根据我们转换后的思维来写,不能通过原来的题目得出这个收缩条件。还是继续前几天的核心思路,固定右端点,遍历右端点,然后寻找左指针收缩条件。如果正好等于sum才是满足条件的情况,才会去更新最后的结果。这道题笔者没什么思路,直接做的,答案是错误的,遗憾落泪。子数组的长度还是(r-l+1)

2025-03-15 10:36:53 231

原创 Day62 | 灵神 | 滑动窗口:统计得分小于K的子数组数目

2.每次都用for循环计算[l,r]区间的和,这个没啥必要,因为左指针往右收缩的时候就已经对sum进行了修改,我们只需要加上右端点,就能得到区间的和,而不是每次都要计算。还是那个核心思路,固定右端点,遍历右端点,找左指针收缩的条件,这道题的收缩条件很简单,就是左右指针区间[l,r]内的数的和再乘以数量得到的数大于等于k就行。[2,1,4,3]如果这四个数满足条件的话,那么[1,4,3],[4,3],[3]那必然符合,那所有的子数组数量就是(r-l+1)=4咯。

2025-03-14 08:48:52 325

原创 Day61 | 灵神 | 滑动窗口:统计最大元素出现至少K次的子数组

右端点固定为第3个3,区间为[1,3,2,3,3],这是我们的l从2开始,真实区间其实是[2,3,3],这其实没有关系,因为l的2在这里其实代表的是[1,3,2,3,3]和[3,2,3,3]这两个子数组。当右端点固定为第二个3,区间为[1,3,2,3],这时左指针往左移动,移动到l=2,即区间为[2,3]时,max_cnt变为1,退出了循环,而满足条件的子数组为[1,3,2,3],[3,2,3],而l正好就是2,因为我们左指针移动过的路径就是所有满足条件的子数组。后来加上是因为我发现了我的代码的漏洞。

2025-03-13 10:57:28 392

原创 Day60 | 灵神 | 滑动窗口:最大连续1的个数III

在本题中就是要找最多翻转k个0后,数组中连续1的个数,换句话说,我们左右区间[l,r]内最多只能包含k个0,超过了就无法翻转,无法翻转就无法保证全是连续的1,。我们只需要记录碰到0的次数,只要碰到0,那么记录0的变量num_zero就++,只要碰到0的次数超过了k,那说明我们现在翻转不了这么多的0,所以我们这时候就可以移动左指针,直到我们的左右区间[l,r]内0的数量小于等于k停止。和前两天核心思路一样,还是固定右端点,遍历右端点,然后去找左指针往右收缩的条件。而这个条件一般和题目条件相关。

2025-03-12 09:20:59 327

原创 Day59 | 灵神 | 滑动窗口:最多K个重复元素的最长子数组&&找到最长的半重复子字符串

我们先往右移动1个字符,这样就可以比较l和l-1所指的字符,如果不相等,那说明我们没有找到第一对相等的相邻字符,我们就继续往后移动,只有l和l-1相等的时候,我们才达到了左指针停止移动的条件,就是左右指针之间已经没有1对以上的相邻相等字符了。那我们就自然而然想到拿一个变量来记录相邻字符相等的数量,如果大于1,说明满足了条件,我们应该向后移动左指针,直到左指针满足条件了为止,而怎么判断左指针满足条件该停止移动了又是新的难点。还是和前面的思路相同,固定遍历右端点,然后根据具体条件收缩左指针。

2025-03-11 09:40:43 286

PPP协议模拟的思科源文件

PPP协议模拟的思科源文件

2024-05-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除