自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣--滑动窗口最大值

的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。滑动窗口的位置 最大值。滑动窗口每次只向右移动一位。

2024-07-09 15:40:12 227

原创 LeetCode 接雨水

都是求中间这列的雨水值无非就是上述我画的三种情况,分别是两边的最小值大于等于小于中间列的值,分别增加的雨水值一眼就能看出,如果是大于中间的话就是两边最小值减去中间值,而后面两种情况则都不增加雨水值。下面我就讲一下对于我而言来说最好理解的方法就是看列,什么叫看列呢就是看没一列的雨水增加量,那么怎么才能查看这一列雨水增加还是减少呢?上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。个非负整数表示每个宽度为。

2024-07-03 20:03:48 203

原创 Cookie Session JWT自我总结

的话存储在客户端很不安全,session相对来说更安全,就算session很好但是session是存储于服务端的,这样子如果是微服务项目有多个服务端,此时就会造成一个服务器能获取到数据但是另一个服务器获取不到,此时就出现了token,token通过服务端设置传输给前端,然后是放入的前端请求的请求头里面,这样的话就算是不同服务器我只要服务器能解密这个token也就能获取到信息,token的话一般用的就是。cookie和session的主要区别就是一个存储在客户端一个存储在服务端,而且。

2024-05-22 19:21:52 123

原创 Mysql索引知识的自我总结

那就要说b+树和b树的区别,首先最大区别就是b+树的叶子节点要放实际的记录数据,而不仅仅只是索引,而且b+树的叶子节点是用链表连接的,查找起来更加的方便,所以目前为止,mysql的索引都是用b+树,而且还有一个原因就是mysql的三大存储引擎都支持b+树,既然介绍完索引的基本组成,那么再说一下索引的基本分类,索引按照物理存储来分主要分成两个大类,分别是聚簇索引也就是所谓主键索引,剩下的就叫二级索引。在 WHERE 子句中,如果在 OR 前的条件列是索引列,而在 OR 后的条件列不是索引列,那么索引会失效。

2024-05-15 20:10:55 615

原创 HashMap和ArrayList的自我总结

然后就是要是数组超过了扩容阈值此时就要对数组进行扩容,扩容的话首先就是创建一个新的数组长度的话就是旧数组的两倍,16就变成32,然后将旧数组的值重新计算哈希值获取新索引插入进扩容后的新数组,但是此时的插入是对新数组的长度减1进行位于计算来获取到新的索引值,对于链表又不一样,对于链表的话还要判断此时获得的hash值和旧数组长度的位于是不是为0如果为0则停在原始位置如果不为0则落在原始位置加增加的数组大小的这个位置上。在以前老版本的java他是直接扩容为之前的两倍,但是现在都是扩容1.5倍。

2024-05-10 20:04:27 741

原创 5/23学习总结

如果偷第i房间,那么dp[i] = dp[i - 2] + nums[i] ,即:第i-1房一定是不考虑的,找出 下标i-2(包括i-2)以内的房屋,最多可以偷窃的金额为dp[i-2] 加上第i房间偷到的钱。从dp[i]的定义上来讲,dp[0] 一定是 nums[0],dp[1]就是nums[0]和nums[1]的最大值即:dp[1] = max(nums[0], nums[1]);然后dp[i]取最大值,即dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);

2023-05-23 21:43:09 55

原创 5/22学习总结

对于特征值而言就是将 |λE-A|为0时取得“λ ”,对于特征向量就是就是将此时特征值代入|λE-A|*X=0时的基础解系线性相关的式子,对于基础解系个数=n-r(此时的秩)正交矩阵就是A转置等于A的逆的情况。是否正交就看内积就行了,如果内积为0则正交,不正交就用施密特正交法转化为正交。英语的话就是背了一下单词,主要是忘了好多,主要就复习了下昨天的稍微看了下新的。A的行列式值|A|=特征值相乘,tr(A)称为a的迹等于特征值相加。主要做了些题主要复习了特征值和特征向量这一节;

2023-05-22 22:03:21 124

原创 5/14学习总结

对于这道题的话其实也是01背包一类的题,但是这道题难得并不是01背包相关的代码,而是阅读完整道题后,不知道是使用01背包从而引起连锁反应,根本不知道怎么做。其实怎么想到是用01背包,就是想到把这一个数组分成两堆数值相似的值,再用大的去减去小的,最后得到得不就是最小值了吗。今天补了下周末考的测试题,但是做到第三个动态规划的题就不行了,之前都还没学动态规划,今天稍微看了看,还是不太明白,但是懂了一些。不放物品i:dp[i-1][j]此时的i-1就表示[0,i-1]个物品也就是去除了i这个物品。

2023-05-14 22:00:10 47

原创 5/7学习总结

它是由一组权值作为其叶子节点构成的,每个叶子节点代表一个字符,节点的权值代表该字符在数据中出现的频率。哈夫曼树的构建过程是基于贪心算法,即将权值最小的节点不断合并,直到所有节点都合并为一颗树。以上的截图的话也就是今天我觉得稍微需要记录一下的重点内容,因为上一次学习感觉过了有几天,之前的小知识都有点遗忘了。今天也就是初步学习了一下,大概是理解了是个什么东西,但是让我自己写出来,可能还是不行,明天好好学习一下这个。对于java而言目前学习的还没有到编码地步,都在了解基础的java知识以及与其相关的一些知识。

2023-05-06 20:11:17 49

原创 5/5学习总结

这两个函数掌握了再看这道题就简单许多,对于这一类的题目,不管是知道先序中序求后序,亦或是其他的都差不多,都是围绕中这个点展开,对于这道题知道中序后序,首先知道在后序中最后一个是中,代入中序就可以得到左子树和右子树的的元素,再将后序的往前进一位作为中,在进行判断,都这么做,放入代码的话也就是一直按照这种规律循环,循环终止的条件也就是当为空时。最开始拿到这道题得时候,一头雾水,压根不知道怎么做,看了题解后,一下就透彻了,对于这类题感觉有非常大的提升,首先要先了解两个函数。### 样例输入 #1。

2023-05-05 22:20:13 35

原创 5/4学习总结

对于这道平衡二叉树而言,首先复习什么是平衡二叉树,就是左右子树深度差不超过1的二叉树,对这道题而言其实就是前序遍历,但是要先把整体思路搞明白在开始写,不然的话一开始leftheight为什么等于-1都不知道,其实就是在下边遍历中结点的时候才算的。因为这是看着视频学的,后面又看了一下其实根本不用判断是不是完全满二叉树,直接无脑遍历求点就行,判断完全满二叉树在求指数时还容易犯错。这里用的是后序遍历,其实相当于求的是高度,但是这高度等于深度其实没啥区别,要注意就是这里实质上是求得高度。如果不满足则直接遍历相加。

2023-05-04 21:56:58 42

原创 4/28学习总结

于是,他在地图外圈加上四块魔镜,使得他能从地图边沿的魔镜走到地图另一侧,即能从(0,y)到达(n-1,y)或从(x,0)到达(x,m-1),反之亦然,只需要一步就能穿越魔镜。当时乍一眼一看没看懂什么意思这道题,主要是当时那个a坐标看出来了b坐标当时忘记了从0开始,审题就崩了,现在题目读懂了,发现就是一道签到题,真真正正的签到题,从横向和纵向两个方向讨论,因为有魔镜反转,所以直接加个abs即可,再在直接相减和过魔镜距离中选最小的即可。今天完成了那个关于项目的设计报告,总结了一下项目,大总结如下。

2023-04-28 18:06:25 30

原创 4/27学习总结

这是相应文件目录所对应的一些功能吧,也不知道有啥用,还有就是学了个环境变量,用cmd窗口打开程序更快,正好吧昨天不小心吧qq的窗体标删除了找半天也找不到以后也可以用cmd窗口来打开qq,主要操作方法就是在我的电脑右键打开属性,搜索高级属性设置,点击path将想要打开程序的文件路径复制在里面,即可。关于题的话还是做少了不知道在各个题的用法是否相同,还是得多做。对于今天学的java感觉没学啥,写了一个helloworld还不是用编译器弄得还是用记事本,最后还没写出来,没找到错误,痛苦,主要下载了jdk啥的,

2023-04-27 21:51:13 28

原创 4/26学习总结

今天稍微看了一下java入门但是也就看了几十分钟,又因为今天晚上选修课考试导致晚自习也没有去,得亏是以后再也没有线下选修了。这是关于cmd的一些操作 但是我还没理解cmd窗口到底有个什么作用,大概在网上搜了一下,就如下图所示。明天的话再学一下java再将这几天的树复习复习,再做几道关于图的遍历的题。win+r输入cmd进入cmd窗口。几天看java就看了个cmd窗口。win+e是打开文件管理。

2023-04-26 22:15:33 32

原创 4/25学习总结

对称二叉树,其本质就是寻找递归点,对于外部的就是左子树的左子树和右子树的右子树进行比较,对于内部的就是左子树的右子树和右子树的左子树进行比较若两个都为true即可输出。对于力扣上有两类层次遍历的题,一种是从上到下遍历一种是从下到上遍历,对于从下往上便利的话其本质和上述代码差不多,对于最后的输出的话就转置一下代码就行了。如果用中序的话无非就是在遍历完左子树后,翻转后在遍历一次左子树,此时的左子树就是翻转前的右子树,如若继续遍历右子树拿什么都没遍历到。深度:叶子节点到根节点的距离一般用先序遍历。

2023-04-25 21:34:06 35

原创 4/24学习总结

对于非递归算法的话就是迭代法用栈,就拿先序遍历举个例子,中左右,先建立一个关于树节点的栈,对于栈而言就是先进后出,所以一开始对于根节点必须出栈,让其直接放在数组里。对于叶子结点的话,对于入栈操作,都是先放入右孩子再放入左孩子,因为有依据先进后出的这么一个操作,代码如下。回顾正题,对于二叉树的遍历,大致分为先序遍历,中序遍历,后序遍历,分别为中左右,左中右,左右中。类型实现了动态数组的功能,并提供了许多其他实用的功能,例如数组的排序、查找等。声明了一个一维的动态数组。动态数组是一个可变大小的数组,可以通过。

2023-04-24 21:49:04 49

原创 4/23学习总结

对于判断输赢的话,本质就是在四个方向进行遍历判断有没有五个棋子连在一起,如果有的话就用messagebox整个函数来建立一个小窗口并且输出是那个棋子胜利。

2023-04-23 23:35:46 36

原创 4/22学习总结

今天稍微放松了一天,但是也稍微看了看项目,发现了部分小bug并进行了修改,第一个就是,在人机大战后,没有判断黑白棋输赢,这个直接就将判断输赢的函数加载人机大战后面即可。还有就是稍微调整了一下判断输赢的函数,删掉了一些无用代码,更简洁了一点。

2023-04-22 22:05:30 30

原创 4/21学习总结

其中还有个比较重要的就是要加一个是否是ai的条件,这样的话才能让玩家在人机大战中一直下黑棋而且不让玩家在人人大战中只下黑棋,这里的操作也想了好久,还是在不知不觉的操作中搞出来的,今天还额外加了其他功能,加了一个状态,看目前到底是人人大战还是人机大战,还加了一个重新开始操作,也方便在棋盘操作。今天仍然是做项目的一天,今天终终终终于吧人机写出来了,但是始终之前那个程序出错就在我吧人机大战和人人大战的操作放在了同一个函数里面,这次将人机作战的操作单独放在了鼠标点击操作的后面。

2023-04-21 23:20:14 31

原创 4/20学习总结

今天还是只做了项目,稍微调整了一下人机大战,但是还是有点小问题,就是要多次点击人机大战才能让ai白棋,很恶心,很痛苦,但是相比昨天而言,ai可以运行了也没啥好总结的,就放下代码有部分注释的。

2023-04-20 23:28:03 30

原创 4/19学习总结

其次就是一个ai_think()函数,找到积分最大的坐标返回出来,然后在自动在该位置下棋,但是今今天一直按都没有用,他不能自动下棋,检查了n遍都还没发现问题,都要崩溃了,哎。今天就搞了那个人机操作,但是很痛苦,弄了一天都没弄出来,不知道是哪个地方出了问题,对于人机操作的话最开始的算法就是计算积分。

2023-04-19 23:06:18 29

原创 4/18学习总结

最后就是今天把我折磨的最惨的悔棋操作,其实做完之后,发现整个操作并不难,但是一开始自己没有多家思索,就直接在网上搜索看别人怎么做的,看的多,也杂直接导致c语言尝试过,c++也尝试过但最后都无济于事都没啥用,到后面实在搜不动了,加上以及被折磨一天了,自己想了想,本质就是一个栈操作而已,但是因为之前看的太多导致自己忘了最基础的操作。今天还是做项目的一天,今天主要是实现了三个东西,也被这三个东西折磨了很久很久,首先是制作三个框框分别是人机大战和人人大战和人机大战和悔棋其实就是画框,这也是其中最简单的这么一个。

2023-04-18 22:15:05 41

原创 4/17学习总结

今天还弄了个悔棋的框框和字,但是这个东西弄了我很久很久,也是个恶心东西,单独放在一个函数里面他就弄不出来字样和框框,但是放在draw函数绘制棋盘函数里一起用就可以,很恶心的东西,折磨了我很久,下一些杂七杂八的东西,差点把vs搞崩了幸好在晚上还是弄好了。今天还是搞的项目,很烦今天弄得很少很少,晚上选修课考试又是三个小时浪费掉了,首先的话就是避免了一种状况,就是以防下一次下棋时,将已经下过的棋子覆盖,这么一种情况,这种的其实很好处理,就先将整个棋盘遍历一遍。

2023-04-17 23:54:16 31

原创 4/16学习总结

对于接下来的操作便是处理鼠标消息,让程序对鼠标的接触有反应,这里要注意EM_MOUSE这个函数有的下载的图形库里没有,所以如果要用这个函数,必须找到图形库文件里包含这个的,当时就是因为这个点被折磨了很久。对于一开始的整体大小是以及用initgraph定义了,并且定义了五子棋盘的行列数是一个15X15的这么一个正方形,对于每条线段的空隙宽度也就是用的b_wide来定义的,线条之间间隔有25个像素。0 0 600 500 表示从(0,0)点到(600,500)两点的一条线。还有判断输赢以及悔棋人机大战没做。

2023-04-17 00:05:33 37

原创 4/15学习总结

给出两个字符串 s_1s1​ 和 s_2s2​,若 s_1s1​ 的区间 [l, r][l,r] 子串与 s_2s2​ 完全相同,则称 s_2s2​ 在 s_1s1​ 中出现了,其出现位置为 ll。对于全部的测试点,保证 1 \leq |s_1|,|s_2| \leq 10^61≤∣s1​∣,∣s2​∣≤106,s_1, s_2s1​,s2​ 中均只含大写英文字母。最后一行输出 |s_2|∣s2​∣ 个整数,第 ii 个整数表示 s_2s2​ 的长度为 ii 的前缀的最长 border 长度。

2023-04-15 23:15:59 26

原创 4/14学习总结

今天还做了目前为止的第一道困难题,嘿嘿,这道题的话第一眼看到虽然知道是单调栈一类的题,但是自己还是没有思路,毫无想法对于这道题,但是看了视频后,发现其实很简单的,真的亏对他是一道困难题,即使我第一时间啥都想不出来。今天又做了两道关于单调栈的题目,首先第一道每日温度就是纯纯的一道简单题,就按照单调栈的最基础的代码来的,虽然是最基础的,但是这次这个完完全全是自己一步推出来的。还看了一下优先队列,但是对于优先队列的题稍微看了下,感觉还是有点半懵状态,明天再看看吧!小根堆:每个父节点节点小于子节点。

2023-04-14 23:13:48 30

原创 4/13学习总结

但是对于这道题,这道题,他不是想普通的数组找更大,而是一个循环数组,而不是想普通的一样到最后一个位置,就是循环又到开头在比较,这个时候其实有两种方法,第一种是相当于在重复一个相同数组放在后面eg:{1,2,3}可以弄成{1,2,3,1,2,3}就这个意思,还有一种表示方法,可以通用于各种循环的一种表示方法,i%n这么一种表达式,即使超过数组长度也会自动跳动到对应的位置。首先先是关于单调栈的基础代码,这种情况是求较大值的如果要求较小的话把<改为>即可。今天又复习了一下单调栈对于单调栈的理解更加深刻了。

2023-04-13 23:09:34 28

原创 4/12学习日记

这道题因为没看范围一直卡在20分不管怎么检查都不知道错在哪,codeblocks还运行不了过大的数组,当时检查着检查着直接裂开了,后面又过了好久才发现是范围问题,今天真的被这个滑动窗口恶心死了。这里的话有几个注意点,一个就是在找完了各个区间的最小值后要清除队列的所有元素再进行遍历,寻找最大值不然的话结果对不了,还有一个就是每道题都要注意的一定要。今天被滑动窗口单调队列真的恶心了一天,又算不上特别难,一开始自己就是没理解的了,看到后面真的崩溃了,幸好还是挺过来了。看好每个题目的范围!

2023-04-12 22:16:47 23

原创 4/11学习总结

在存储方面,邻接列表从存储空间角度来看是更有效的,因为我们只需要存储边的值。对于一个有数百万个顶点的图来说,这意味着节省了大量的空间。今天还复习了一下迪杰斯特拉算法,照着啊哈算法敲了一边,大概理清了下思路,明天自己再敲一次巩固下。好像对于邻接表来说一条链先走到底的是bfs而dfs的话就是到后面一个直接跳转到下面的一个。今天学长讲了下图,之前自己也看了看图的,那就回顾一下图的知识。1.图分为有向图和无向图,区别如名有无方向。2.对于图的遍历可以用dfs也可以用bfs。3.还新知道了一个什么邻接表。

2023-04-11 23:00:57 28

原创 4/10学习日记

假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。例如有3种果子,数目依次为1,2,9。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。今天预备役考试,有两道题昨天刚做,还好记忆力还没退化,还是做出来了,还有就是一道合并果子,这个题,这个题的话之前在b站看到过但是忘了好多,唯一记得就是,这是相当于接水问题而且第二次排序要用冒泡排序,结果没想到这么跟着瞎记忆写,还骗到了70分。

2023-04-10 23:10:27 51

原创 4/9学习日记

这题我拿到反正是一点思路都没有,看了半天题解也没看明白,最后还是看视频才稍微懂了懂,这题突破点就是找根,后序遍历的最后一个一定是根结点,这题还学了两个c++关于字符串的函数,对于dfs函数来说的话,我一开始都没怎么看懂为什么要这样搞,后来才发现原来就是求各个子树的结点,顺序的话就是按照先序的顺序来的,最开始是根节点然后是左子树,最后右子树。一开始想着是用队列,但是一直没想通是怎么一个变法,看了下解析一下就通了,就是先让两个队首的元素插入到队尾去,然后输出目前队首的元素并让他出列,接下来依次解决,

2023-04-09 22:07:07 108

原创 4/8学习日记

3.树,对于树而言的话,一般都用的二叉树,二叉树又有几类,完全二叉树,满二叉树,满二叉树的话就是最后一层的节点全部都是满的,对于完全二叉树,就是结点按照顺序来安放的,对于二叉树的遍历,有三种,先序中序后序,先序就是中左右,中序就是左中右,后序就是左右中,对于树的遍历的话使用递归就可以,对于不同顺序的换个位置即可。6.感觉对于串,数组都没咋看,感觉和c比没啥区别,唯一记忆里有不同的就是串里有个匹配的什么算法。多学的感觉也想不到啥了,总的来说这周效率还是不太佳,题都没做多少道,下周争取多做题了,不能继续摆了!

2023-04-08 23:02:22 28

原创 4/7学习日记

给定一个非负整数N,您的任务是计算所有数字的总和N,并用英文输出总和的每个数字。输入规范:每个输入文件包含一个测试用例。每个案例占用一行,其中包含N(≤10100).输出规格:对于每个测试用例,在一行中输出英文单词的总和数字。两个连续单词之间必须有一个空格,但行尾不能有多余的空格。

2023-04-07 21:27:22 44 1

原创 4/6学习总结

今天写dijkstra算法时,写完检查错误检查了将近几十分钟,看了很多遍都没看出问题,甚至对着书检查都没检查出来,最后发现是双循环的时候两个循环参数都用的i,直接裂开了,这种简单的错误检查了十几二十分钟都没看出来,以后务必牢记!还掌握到一个小知识点,堆总是一棵完全二叉树。3.今天除了用dfs写了最短路径也去学了一下dijkstra算法,大概是看懂了,但是实操起来还是不太熟练,明天务必好好复习一下,多写几遍。2.还复习了一下昨天看的dfs,现在的话对dfs的感觉更好了一点,昨天的题目是无向图而今天用dfs。

2023-04-06 22:45:57 63

原创 4/5学习总结

用dfs写了几种类型的题了,但是还是感觉对其本质内容还是不清晰啊,什么类型的题能用,该怎么用,还是不够了解,可能还是题目写少了,还是得任重道远啊。今天还看了dfs和bfs对于图的简单遍历,也复习了一下dfs和bfs但是感觉掌握的还是不好。2.bfs对于图的遍历(此题中就相当于吧各个数值放在队列中进行操作)对于图而言目前接触到的,就只用将图内容转化到二维数组中解决即可。2.二叉树不是树的特例,二叉树就是一种已经被定义了的树。还复习了一下昨天的题,对于树而言也可以dfs 来进行。1.dfs对于图的遍历。

2023-04-05 23:31:04 65 1

原创 学习日记(12/26)

学习日记

2022-12-26 18:17:23 1133 1

空空如也

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

TA关注的人

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