自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (2)
  • 收藏
  • 关注

原创 virtualbox ubuntu扩充磁盘大小

sudo gparted 打开管理工具。拖动上述位置就可以实现扩容。选中要调整的区域右键选择调整区域大小。首先在虚拟存储管理里面修改磁盘大小。然后安装gparted。然后重启虚拟机即可。

2024-07-27 16:58:55 250

原创 代码随想录刷题随记31-贪心5

按照右边界排序,从左向右记录非交叉区间的个数。此时问题就是要求非交叉区间的最大个数。这里记录非交叉区间的个数还是有技巧的,如图:左边界排序可不可以呢?也是可以的,只不过 左边界排序我们就是直接求 重叠的区间,count为记录重叠区间数。因为按照右边排序,从左到右进行遍历来到一个位置可以在遍历到一个位置以后,得知之前所有区间右端的最小值。所以就知道有哪些区间和自己不重合。如果按照左区间排序,就知道左侧最小值可以知道。

2024-05-09 16:34:38 415

原创 代码随想录刷题随记30-贪心4

比较显然。

2024-05-07 16:16:03 227

原创 代码随想录刷题随记29-贪心3

比较简单,首先对数组进行绝对值排序,然后如果是负数从小到大进行反转如果是正数,就对一个绝对值最小的一直翻转按照绝对值排序的实现可以通过重写比较器实现。

2024-04-30 15:05:37 317

原创 代码随想录刷题随记28-贪心2

跳几步无所谓,关键在于可跳的覆盖范围,那么这个问题就转化为跳跃覆盖范围究竟可不可以覆盖到终点。我们首先要判断当前最大覆盖的范围和下一步最大覆盖的范围。主要的难点在于循环的边界问题。每次考虑跳两步的情况。

2024-04-28 15:34:01 440

原创 代码随想录刷题随记27-贪心1

局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。全局最优:选取最大“连续和”

2024-04-25 16:32:33 236

原创 代码随想录刷题随记26-回溯last

3个hard。。。

2024-04-23 18:26:18 434

原创 代码随想录刷题随记25-回溯

与之前的集合问题不同,而本题求自增子序列,是不能对原数组进行排序的,排完序的数组都是自增子序列了。所以不能通过排序的问题去重。

2024-04-21 20:02:44 383

原创 代码随想录刷题随记24-回溯4

为了学一下java今天用java写这三道。

2024-04-20 16:27:17 365

原创 W11安装WSL2 ubuntu 攻略

打开控制面板,选择程序 —— 启用或关闭Windows功能,勾选 适用于Linux的Windows子系统还有虚拟机平台选项,修改后需要重启。最近换了新电脑重新安装一遍wsl2,记录一下方便以后使用。在微软商店中搜索ubuntu,安装ubuntu20.04。在命令行 / powershell中运行如下代码。此后可以进行终端美化(

2024-04-19 20:21:46 764

原创 代码随想录刷题随记23-回溯3

注意同一个 数字可以 无限制重复被选取怎么体现这个可以重复取的思想很重要。

2024-04-16 21:57:04 282

原创 代码随想录刷题随记22-回溯2

注意与之前的题目不同的是需要求和。从左到右的范围尝试模型。

2024-04-16 12:50:03 364

原创 代码随想录刷题随记21-回溯1

回溯法解决的问题回溯法,一般可以解决如下几种问题:组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N个数按一定规则全排列,有几种排列方式棋盘问题:N皇后,解数独等等。

2024-04-14 15:24:50 220

原创 代码随想录刷题随记20-二叉树9

递归法迭代法。

2024-04-13 20:33:30 329

原创 代码随想录刷题随记19-二叉树8

因为是有序树,所以 如果 中间节点是 q 和 p 的公共祖先,那么 中节点的数组 一定是在 [p, q]区间的。即 中节点 > p && 中节点 < q 或者 中节点 > q && 中节点 < p注意这里必须先访问根节点,后序遍历不行解题代码。

2024-04-12 09:05:38 287

原创 代码随想录刷题随记18-二叉树7

注意是搜索二叉树所以是有序的,所以如果按照中序遍历的话,最近差异的只会存在于前后遍历的两个节点之间,而不会出现跨界的的问题。

2024-04-10 22:37:44 319

原创 代码随想录刷题随记17-二叉树6

递归解题思路和之前使用中序后序构建树的思路是一样的。

2024-04-09 23:44:10 316

原创 代码随想录刷题随记16 -二叉树5

在树的最后一行找到最左边的值。首先要是最后一行,然后是最左边的值。使用递归法,如何判断是最后一行:就是深度最大的叶子节点一定是最后一行。注意height的回溯。要在遍历左右节点后对height进行减操作使用层次遍历可以很容易的解决这个问题。

2024-04-07 18:19:00 402

原创 代码随想录刷题随记15-二叉树回溯

一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。求深度和求高度的区别:求深度可以从上到下去查 所以需要前序遍历(中左右),而高度只能从下到上去查,所以只能后序遍历(左右中)所以这里的递归其实是后序遍历的思路此题用迭代法,其实效率很低,因为没有很好的模拟回溯的过程,所以迭代法有很多重复的计算。虽然理论上所有的递归都可以用迭代来实现,但是有的场景难度可能比较大。例如:都知道回溯法其实就是递归,但是很少人用迭代的方式去实现回溯算法!

2024-04-06 12:27:20 255

原创 代码随想录刷题随记14-二叉树3

也可以利用完全二叉树的性质,看了一下,利用二叉树性质的题解时间复杂度比遍历一遍还高。可以按照普通的二叉树层次遍历所有的节点统计个数。非递归版本:仍然可以利用层次遍历求解。本题也可以利用上一节层次遍历求解。必须要满足是到叶子结点的高度。

2024-04-06 00:25:09 274

原创 代码随想录刷题随记13-二叉树层次遍历,翻转对称

对于二叉树是否对称,要比较的是根节点的左子树与右子树是不是相互翻转的,理解这一点就知道了其实我们要比较的是两个树(这两个树是根节点的左右子树).这道题目说是二叉树,但116题目说是完整二叉树,其实没有任何差别,只是需要判断空指针,不过以前也判断了所以没啥影响直接用上一题的代码就可以ac。而不能简单的认为就是一直向下遍历最右边的。遍历到根的时候翻转一下左右结点,然后深度优先遍历左右孩子继续完成翻转操作。这道题和上一题的解题思路是一样的,只有把结果翻转一下就可以了。pushback改为下述即可。

2024-04-05 21:57:26 357

原创 代码随想录刷题随记12-二叉树遍历

先序遍历是中左右,后续遍历是左右中,那么我们只需要调整一下先序遍历的代码顺序,就变成中右左的遍历顺序,然后在反转result数组,输出的结果顺序就是左右中了。前序遍历是中左右,每次先处理的是中间节点,那么先将根节点放入栈中,然后将右孩子加入栈,再加入左孩子。中序遍历是左中右,先访问的是二叉树顶部的节点,然后向下访问,直到到达树左面的最底部,再开始处理节点,那么在使用迭代法写中序遍历,就需要借用指针的遍历来帮助访问节点,栈则用来处理节点上的元素。上面的迭代方法,每种的思路都不一样很不方便。

2024-04-02 19:30:41 440

原创 代码随想录刷题随记11-滑动窗口和优先级队列

考察滑动窗口的结构。

2024-04-01 15:38:50 251

原创 代码随想录刷题随记10-栈和队列的应用

有三种不匹配的情况,第一种情况,字符串里左方向的括号多余了 ,所以不匹配 : 对应遍历完栈不为空的情况。第二种情况,括号没有多余,但是 括号的类型没有匹配上。:对应于出栈的符号和所需符号不符合。第三种情况,字符串里右方向的括号多余了,所以不匹配。对应于需要出栈但是栈空了。

2024-03-30 20:37:57 339

原创 代码随想录刷题随记9-栈和队列相互实现

两个栈倒,栈本来是先进后出的,但是队列是先进先出的,把栈倒入另一个栈里面在出栈顺序就变成先进先出了。

2024-03-29 14:35:56 242

原创 代码随想录刷题随记8-KMP

我们只需要判断,以第一个字母为开始的子串就可以,所以一个for循环获取子串的终止位置就行了。而且遍历的时候 都不用遍历结束,只需要遍历到中间位置,因为子串结束位置大于中间位置的话,一定不能重复组成字符串。数组长度减去最长相同前后缀的长度相当于是第一个周期的长度,也就是一个周期的长度,如果这个周期可以被整除,就说明整个数组就是这个周期的循环。在由重复子串组成的字符串中,最长相等前后缀不包含的子串就是最小重复子串,这里拿字符串s:abababab 来举例,ab就是最小重复单位。标准的kmp类型的题。

2024-03-28 21:35:58 439

原创 代码随想录刷题随记7-字符串1

在遍历字符串的过程中,只要让 i += (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间。为啥要从后往前遍历:因为前面一截是没转化为number的字符串,如果从前往后遍历就会被覆盖。可以用双指针法实现空间复杂度为O(1)的,但这种方法java里面不适用。先把子串反转一遍,再整个反转一遍。负负得正就起到了整体的效果。主要的难点在于使用 O(1) 的额外空间解决这一问题。一种就是通过位运算,这个之前没见过,这里记录一下。反转字符串依然是使用双指针的方法。swap可以有两种实现。

2024-03-27 21:53:55 442

原创 代码随想录刷题随记6-哈希表2,双指针

这道题目是四个独立的数组,只要找到A[i] + B[j] + C[k] + D[l] = 0就可以,不用考虑有重复的四个元素相加等于0的情况思路可以把A和B相加做成map,C和D相加做成另一个map。这样就把问题转化为上一篇文章中提到的两数之和题目了。

2024-03-26 21:48:23 900

原创 代码随想录刷题随记5-哈希1

用数组自定义一个hash表,映射关系就是字母- ’ a ’一个字符串遍历的时候统计每个字母出现的次数,另一个字符串遍历的时候把统计的数再递减回去,最后看有没有不为0的来判断是否为异位词。

2024-03-25 13:44:39 369

原创 代码随想录刷题随记4-链表

因为是倒数的第n个节点而不是正数的节点,所以为了满足一遍遍历就能找到,可以让快指针和慢指针之间间隔n。首先先求两个链表的长度,找出长链表比短链表长多少,如果两个链表相交,交点一定在这个长度之后。要注意fast边界条件的判断是fast和fast->next都不为空。可以用集合筛选相同的节点即相交节点,但是那样会有额外的空间。主要是如何找到入环节点的那部分的数学推导需要仔细思考一下。没什么技巧,主要考察链表操作的熟练程度。采用双指针的方式解决。

2024-03-24 09:18:30 421

原创 代码随想录刷题随记3-链表,虚拟头结点,反转链表

今天写的这三道题都比较基础,加上博客耗时1.5h左右。

2024-03-22 14:55:58 226

原创 代码随想录刷题随记2:有序数组的平方,滑动窗口,螺旋矩阵II

所以取两个指针分别指向数组的两端,找出最大值进行填充,然后指针移动。这道题目暴力解法当然是 两个for循环,然后不断的寻找符合条件的子序列,也就是说每个位置都可能是子序列的起点。看了一下卡哥的解题思路,感觉对我来说还是有亿点抽象了,尝试用有限状态机的思路模拟了一下,发现是可以oc的而且代码看着更好理解一些。每个元素在滑动窗后进来操作一次,出去操作一次,每个元素都是被操作两次,所以时间复杂度是 2 × n 也就是O(n)。从暴力解法中可以看出一点滑动的影子,所以可以利用滑动窗口的方法尝试解决此问题。

2024-03-21 23:15:00 411

原创 代码随想录刷题随记1-二分查找,删除数组元素

上午一道下午一道加速写博客耗时接近2h。

2024-03-20 15:11:37 661

原创 MYSQL学习笔记:索引

叶子节点上存储了所有的key值和对应的data,搜索每个节点最后都要到叶子节点上。非叶子节点只存储key不存储data,每个节点存储的key个数更多,理论上来讲层数更低,搜索效率更高。自适应hash索引的维护也是要耗费性能的,不是所有情况下都可以提升二级索引的查询性能。最理想的情况是一次磁盘IO读取的磁盘块内容刚好存储在B树的一个节点中。原来是先找到二级索引,然后在通过二级索引找到主键再搜索得到数据页。反之,innoDB的那种数据索引不分离的方式就算聚集索引。物理上分为聚集索引和非聚集索引。

2024-02-27 19:57:12 1005

原创 MYSQL学习笔记:MYSQL存储引擎

MYSQL是插件式的存储引擎存储引擎影响数据的存储方式存储引擎是用来干什么的,innodb和myisam的主要区别–数据存储方式----索引MYISAM存储引擎,表结构单独存一个,数据存一个,索引单独存一个INNODB 数据和索引是存在一个结构里面的。

2024-02-13 22:32:16 354

原创 MYSQL笔记:简单的SQL操作和select查询

order by explain发现extra有 using filesort 外排序,放到磁盘里面是比较慢的,可以加索引变成using index可以提升效率。在外连接如果加了where条件,效果会变得和内连接一样,所以外连接一般过滤条件都写在on的连接条件里面。把right右边的表的所有数据显示出来,若在左表中不存在相应数据,则显示NULL。把左边的表的所有数据显示出来,若在右表中不存在相应数据,则显示NULL。右连接先对右边的表进行整表的搜索,left连接先对左边的表进行整表搜索。

2024-02-13 22:04:25 787

原创 mysql笔记:表设计原则

表对应了一个实体表与表之间的关系:一对一一对多多对多。

2024-02-08 22:09:31 561

原创 MYSQL笔记:约束条件

不能为空,值必须是不同的(唯一性)一个表只能修饰一个主键。

2024-02-08 19:30:29 810

原创 MYSQL学习笔记:mysql运算符

通配符放到后面或者中间是可以利用索引的,但是通配符放到开头没法用到索引。

2024-02-08 18:35:33 320

原创 MYSQ笔记:数据类型

如果数值类型选的不妥当,有可能会导致IO访问次数变多性能下降一般金融数据类型会使用浮点数float和double如果出现了一处也不会报错。因此一般金融计算使用decimal(28位,底层使用字符串类型进行存储)类型比较多,如果发生数据溢出,decimal会报错也会四舍五入截断。整形占用内存的大小是固定的,和具体的类型是强相关的,例如下面,括号里面的数字仅仅代表的是整数的宽度。

2024-02-07 21:27:32 369

基于树莓派UDP,YOLOV5,pyqt5的运动目标检测系统

本系统是一个基于互联网进行数据传输的运动目标检测系统,使用电脑进行终端数据处理。系统由三个节点组成。两个独立的摄像头节点对激光笔运动轨迹进行拍摄,接入手机WiFi构建的局域网,通过UDP协议将图像数据传入终端电脑。此两个节点均能独立显示拍摄实时视频,并在终端节点对激光笔和色块进行识别追踪。终端电脑实时框选出激光笔和色块。经测试,该系统视频播放在网络情况较好的情况下无卡顿,可以正确实时框出激光笔和色块,同时设计了人机友好的GUI界面,加上识别实验室背景的功能,全部达到题目要求。

2022-01-13

myproject.zip

基于SYSBIOS操作系统的多线程多任务项目。主要功能包括:菜单显示,触摸切换功能,多种图像处理操作,DHT11温度传感器测温度,温湿度以及CPU工作负荷量实时显示等。项目主要又三个线程,一个外部中断,一个定时器中断组成。

2022-01-13

空空如也

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

TA关注的人

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