自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode刷题日记之简化路径

分割/,按照规则借助栈进行路径的简化,看代码确实不是特别难,难就难在如何想到利用栈的结构,笔者一开始没有想到栈结构,导致这个题目没有很顺利的做。

2024-07-16 16:29:46 169

原创 leetcode刷题日记-字母异位词分组

利用collection中的Counter进行解题,以排序之后的字母为key,单词为value,不同步的值对应列表,

2024-07-15 20:18:52 215

原创 leetcode刷题日记-螺旋数组的问题

其实想明白这个题目也挺简单的,无非就是到转弯处改变方向,但是一开始看到这个题目的时候,确实没想到该怎么去解决。首先确定四个方向,在这之前,设置转换方向的节点,转换方向的条件是,行或者列超出了范围以及该节点没有被访问过。

2024-07-14 17:07:05 175

原创 leetcode刷题日记

轮转数组

2024-06-23 20:55:41 197 1

原创 leetcode刷题日志-旋转图像

也就是一个找规律的题,可以写一个转换前后的坐标对比,很容易能找到规律。[i,j]->[j,length-i-1]上式就是找到的规律。在解题的时候遇到过一个问题,就是如果我单纯的将数组复制给一个中间变量,或者是将数组中的子数组加入到另一个数组,新数组会随着老数组的变化而变化。要想当作中间变量不随着原数组的改变而改变,必须进行深复制。

2024-06-19 15:48:09 199

原创 leetcode刷题日记之全排列

这个题类似于之前做的某一道题,其实算法还是要追踪到树的深度遍历,相当于便利叶子节点的路径记录。不过递归的过程就相当于件数根据树进行遍历了。

2024-04-15 16:23:08 237

原创 leetcode刷题日记之跳跃游戏(中等)

最小跳跃次数,记录每一跳的最大距离,每次达到这个距离,跳跃次数加1,进行最大距离的更新。直至最大的跳跃距离大于数组的长度。

2024-04-14 22:04:31 219

原创 leetcode刷题日记之接雨水问题

这个题目相当于一个桶的容量是多少,这取决于最短的模板的高度,,对于位置来讲,第i个位置所能承载的最大的容量为左右两侧最低的高度减去该位置的高度,如果两侧的最低位置小于height【i】,那么可接容量为0,其实归根到底还是求两侧的最大高度,避免不了进行三次循环,首先进行一次循环,求解每个位置左侧的最大高度,第二次循环求解每个位置右侧的最大高度,最后取每个位置的最大的高度的最小值减去当前位置的高度就能求出当前位置的容量。将总的容量相加即可。

2024-04-09 09:01:07 260

原创 leetcode刷题日记-缺失的第一个正数(困难)

题目的意思十分容易理解,但是确实思考出来这种解题的方法还是比较难的。首先能想到的点就是[1,N]这个范围,因为只有N个数字,最小的数字只能在这个区间和N+1两种可能。但是有时间复杂度的限制,我们该怎么找。我们可以另外申请一块存储空间N+2大小,将出现在[1,N]这个区间的数字进行计数,然后从头开始遍历新开辟的存储空间,从1开始到N+1这个下标结束。中途如果出现计数的个数为0,那么直接返回下标即为最小的数目。

2024-03-29 20:51:45 185 1

原创 leetcode刷题日记之组合的总和(中等)

这道题看起来更像是树的深度遍历的一种变体,只不过是现在的树允许有重复的值,其实只需要通过for循环就可以解决这种变体的题目。大家可能之前做过路径搜索的问题,类似路径搜索。

2024-03-26 10:25:13 189

原创 leetcode刷题日记-外观数组

在每次迭代中,通过两个指针 pos 和 start 来遍历当前项 init,pos 指向当前字符,start 指向当前连续字符序列的起始位置。每次遇到不同的字符时,将当前连续字符序列的长度(pos - start)和该字符本身(init[start])拼接到 curr 字符串中。在内层的两个 while 循环中,pos 从 start 开始向后移动,直到遇到不同的字符或者到达字符串末尾。更新 start 为当前 pos 的值,以便下一次计算下一个连续字符序列的长度。

2024-03-25 23:03:00 416

原创 leetcode刷题日记-滑铁卢了家人们(解数独)

解决数独问题

2024-03-25 10:44:04 291

原创 paddlepaddle框架构建数据集进行分类问题的时候,会发现数据集在构建的过程中不会构建标签(花分类)

paddlepaddle数据集构建问题

2024-03-22 09:48:01 490

原创 leetcode刷题日记-搜索插入位置

这种题目一眼看到二分查找的变体,稍微在二分查找的基础上变了一点点,那就是找插入的位置,根据二分查找的原理我们可以知道,当查找失败的时候,会退出while循环,跳出循环的时候左边指针所指的位置就是我们应该将元素插入的位置,因为left所指的位置会比target值要大。

2024-03-22 09:35:59 206

原创 leetcode刷题日记-在排序数组中查找元素的第一个位置和最后一个位置

有序–>二分查找,我看到有序就首先想到了二分查找,这个题也是用二分查找来做,首先找到二分查找的位置,然后向前向后找不等于target元素的值。前坐标+1,后坐标-1,直接放入列表返回即可。

2024-03-20 20:25:18 227

原创 leetcode刷题日记之搜索旋转排序数组

这种题目的要求时间复杂度,我们首先想到的就是二分查找,因为题目中已经给我们暗示了。那么之前我们接触过二分查找是一个有序的数组啊,现在不是一个有序的数组,而是不知道从哪个位置之后就不再有序了,那么我们可以考虑这样一个问题,如果我们按照原来的思路来做的话会有什么样的结果。首先我们肯定会把文件分为两段,其中一段必定有序,那么我们就可以针对有序的数组进行left和right的更新,以此类推,最终就会找到我们想要找到的下标。

2024-03-19 11:26:09 198

原创 leetcode刷题日记之最长的有效括号

首先想到的就是所有的合法的有效括号,必然是用到栈的结构,结果直接提交显示失败,这样求的是全部的合法的字符串,而题目要求的是子串的合法的括号的最大长度。这时候采用的另一种入队方式,就是当遇到的(的时候将)括号入队,在出队的时候进行最长长度的更新,就是)括号的下标减去栈顶的元素。

2024-03-18 16:12:27 162

原创 leetcode刷题日记-下一个排列(有点懵)

一开始看到这个题目的时候,很懵,理解不了。直接发给我的助手,给我解释了一遍题目的意思,竟然给我输出了答案。我看了解题死理,发现是这么回事。其实看解题思路更能理解这个题目想要表达的意思。首先,逆序找第一个不按照升序排列的数字,记为i,然后从逆序寻找第一个比i所在位置大的下标即为j,交换两个下标对应的元素。然后,从第i+1个位置直至列表的最后,进行元素的交换。

2024-03-17 19:45:37 247

原创 leetcode刷题日记之串联所有单词

一开始考虑的就是暴力破解,每次切片切words中字母的个数,然后根据每个词语的长度进行进一步的切片,将切出来的单词放入列表,然后每次对比一次,如果存在,就从原来的列表中,删除一个元素,最后复制的words数组为空,结束,找到起始位置i,将其加入结果列表中。很遗憾,这种方法超时。然后,优化的方法是使用的哈希表计数的方法,具体的代码如下。

2024-03-17 10:02:12 254

原创 小米笔试题-最好信号塔位置问题

一开始将题目的意思理解错了,写代码写到一半发现,好像是要找位置,不是单纯的根据已知坐标求取位置。不好意思,看了题解。主要分为两种情况,一种就是x大于横坐标的最大值或者y坐标大于纵坐标的最大值。这种情况,可以很清楚的考虑清楚,这个就是坐标的终止条件。另一种情况就是小于0的情况,由于坐标的均大于0(题目规定),所以任意一信号塔达到0,0的距离肯定小于到达负坐标的位置,综上,得到求取坐标的范围[0,xmax],[0,ymax]。不知道大家能否理解我说的意思。

2024-03-10 10:35:06 416

原创 leetcode刷题日记-找出第一个匹配字符串的下标(简单题)

在遍历主字符串的过程中,如果发现和子串的第一个字母相同,那么开始进行子串的遍历。如果能成功遍历子串,那么返回主字符串的当前位置,遍历结束,反之直至主要的字符串遍历结束,返回失败的标志。一种暴力破解,一种就是根据KMP算法。博主使用的第一种方法进行的计算。

2024-03-08 10:09:02 183

原创 leetcode刷题日记-移除元素(简单题)

这和我上一篇博客发的解题思路,其实差不多。对于这个题目,我们只需要在遇到指定元素的时候,保持第一个指针不变即可。反之,将值赋值给第一个指针并将指针+1。

2024-03-06 10:11:52 274

原创 leetcode刷题日记-原地删除重复的元素(简单题)

首先要求原地删除,从题目的例子中可看出来,就是将前几个元素修改成最终不重复有序的值。使用双指针,第一个指针最初的元素,第二个指针寻找与第一个指针指向的不重复的元素,每次找到不重复的元素,将第一个指针+1,并将当前的值赋值给第一个指针的位置。最后返回第一个指针+1就是返回值,即有序不重复数组的长度。

2024-03-06 09:58:09 143

原创 leetcode刷题日记-K个一组翻转(链表)

第一种解法,也是我们常用的一种解题方法,首先遍历一遍列表,将列表中的val的值存放到数组中,然后按照要求对数组进行排序,排序之后,我们重新定义节点,将节点按照排完序的结果返回即可,逆序,可以直接使用切片,按个的去排序。第二种解法:这种解法是博主看了一个人的题解,是真的雕!利用了栈的结构,每次将K个节点入栈和出栈,刚好是逆序的结果,在排序的过程中,直接连接一段一段的就可以。

2024-03-04 22:51:19 157

原创 pyqt5怎么返回错误信息给页面(警告窗口)

在软件设计中,我们可能会遇到对异常的处理,有些异常是用户需要看到的,比如说,当我们登录出错的时候,后端需要给我们返回响应的错误信息,就像下图实现的这样。实际上比较简答,就是利用一个警告窗口。类似这种效果,我们该如何实现?

2024-03-03 20:27:21 393

原创 leetcode刷题-两两交换链表中的节点

leetcode-两两交换链表中的节点

2024-03-03 11:41:43 393

原创 leetcode刷题-110 平衡二叉树的判断(递归实现)

leetcode刷题-平衡二叉树(递归实现)

2024-03-03 11:28:55 347

原创 Qt-designer尺寸排版问题解决方案-自适应解决方案

问题记录

2024-02-29 16:23:29 429

原创 leetcode刷题日记-合并N个升序链表

相信大家都做过两个有序链表合并的习题吧。该题的解决思路是建立在两个有序链表合并的基础上。使用的方法是递归。1.如果其中一个链表为空,直接返回另一个链表,因为一个空链表和非空链表的合并结果就是非空链表本身。2.比较两个链表头节点的值,将值较小的节点作为合并后链表的当前节点,然后递归地对剩余部分进行合并。3.递归地比较两个链表的下一个节点,直到其中一个链表为空,然后返回另一个链表的剩余部分可能描述起来没那么通俗易懂,大家可以根据代码,自己定义两个链表,走一遍这个过程,就会理解了。在这一步完成,之后,我们

2024-02-29 15:51:28 237

原创 leetcode括号生成

当只有一对括号的时候,我们可以得知结果[“()”],当有两对括号的时候,我们可以发现,括号在第一个基础上,要么在括号内部出现,要么在括号外部出现。首先,我们需要定义一个列表,这个列表中存放着所有的括号存在的情况,下标就代表第i个括号对对应的情况。对于每一对内外括号组合,将内部括号组合和外部括号组合进行组合,形成新的括号序列,并将这些新的括号序列添加到 new_combinations 列表中。接下来,对于 n 从 2 到输入的 n 的范围进行循环,依次生成包含 n 对括号的有效括号组合。

2024-02-29 13:03:07 209

原创 leetcode有效的括号-中等

不要被事例骗到,没有事例中写的那么简单,其中还包括([ ])这种例子。如果是计算机本专业的同学来说,一眼看出来,需要使用栈的数据结构。如果匹配的是左括号,就将当前符号加入列表,如果是右括号,那么判断符号的类型(大,中,小),进行出栈,如果出队的元素的和当前访问的元素是一对,那么不做处理,如果不是一对,直接返回False即可,等到最后的时候,如果遍历完所有的元素,栈为空,说明所有的元素均符合规则。除此之外,我们还需要考虑的一种情况就是只有右边括号,如果此时栈为空,那么直接return False。

2024-02-26 19:40:07 350

原创 leetcode刷题-删除链表的倒数第N个节点(一次循环)

删除链表中倒数第n个位置的元素

2024-02-25 20:27:13 265

原创 leetcode刷题电话号码的字母组合(人工智能解答版本)

一开始想用暴力破解的方法来进行解题,就是循环。但是想到随着数字的增多,循环行不通。想到最近使用的一个人工智能助手,于是我把题目发送给了它,直接给出了递归的解决方法。递归分为两个条件,一个就是当列表中的元素的数目达到了数字的个数,那么将列表中的内容,加入了结果集中,否则急需将字典中对应的元素加入列表。

2024-02-20 22:15:09 167

原创 leetcode刷题-最接近的三位数之和

其实这个题目的解题思路,和昨天写的两个题目差不多,定义两个指针,进行排序,避免多次大量循环,减少时间复杂度。在上次的基础上进行了一个比较小的改动。

2024-02-19 15:18:24 116

原创 leetcode刷题记录(三数之和)超时记录

双向指针的作用要清楚,首先第一个指针的位置是访问的位置的下一个位置,第二个指针的位置是最后一个位置,这样每次确定一个位置,移动两个指针即可。如果现在遍历的三个数字符合标准0,那么继续遍历,在这个过程中可能会遇到一种情况,那就是出现相同的数字,这时候需要将相同的数字跳过,直至遇到不相同的数字,如果当前的数字的结果大于0,那么直接移动最右侧的指针,如果小于0,移动左侧指针。这段代码的含义是,避免确定位置的数字重复,也就是上次刚刚使用了这个数字,下次要错过这个数字使用。3.正确的解题思路以及编码。

2024-02-18 16:34:07 182

原创 leetcode刷题(罗马数字转数字)

leetcode刷题记录

2024-02-17 17:51:42 246

原创 暴力破解(if循环)解决leetcode数字转成罗马数字

刚看到这个题目的时候,感觉说的有点啰嗦,其实不难发现,这个题目和之前的给你多少钱,什么2元,5元的,给你一个数字,让你算各种钱币有多少张。无非就是从小到大进行判断,首先判断给定的数字,能容纳多少个最大的,然后依次减少。

2024-02-17 16:52:33 301

原创 leetcode刷题-盛水最多的容器

2.题目看起来并不难,做起来也不是很难。首先想到的就是暴力解法,从数组的两端开始,首先计算出来两端的最短的板,然后使用最短的板乘以数组下标之间的距离(j-i),然后和一开始预设的最大值进行比较,保存较大的值。计算完一轮之后,我们需要考虑下一轮该怎么计算,下一轮我们需要逼近中间,我们考虑是让短板逼近还是长板逼近。分两种情况进行讨论,首先是考虑使用短板进行向内逼近,这种可能会导致面积可能增大,但是如果将长板逼近,那么面积一定会比现在的小。所以按照短板逼近将可能获得最大值。

2024-02-08 21:48:28 205

原创 海信电视安装第三方软件-电视家分享(侵权联系作者删除)

一切准备工作准备就绪之后,可以将U盘插入到电视,然后找到我的应用,应用管理,U盘助手,应该就会显示可用空间,这时候点进去全部文件就能够识别电视家文件,点击确定,选择安装程序,然后进行安装,打开等待自动升级,升级完成打开最新的7.0。1.海信电视安装第三方软件电视家,相对来说还是比较复杂的。首先要准备电视安装包,一般来说是电视家海信专用安装包,大家可以搜索电视家的官方网站。通过点击电视家3.0下载,会弹出二维码,可以扫描二维码,查看APP,如果是海信电视的话,看清楚下载海信专用的APP。点击上方的电视软件。

2024-02-07 20:55:34 333

原创 leetcode正则表达式匹配问题(困难)

leetcode刷题记录(困难)

2024-02-04 00:07:06 237

空空如也

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

TA关注的人

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