- 博客(85)
- 收藏
- 关注
原创 【力扣】17.04.消失的数字
这道题的题目意思就是从0-n中的数字中找出缺失的那一个,n是数组的长度,因此我的想法就是先将数组进行排序,往sort()里面一扔,完了以后看前一个与后一个之差中哪个不是等于1的,就求出来即可。
2024-04-12 20:40:51
241
原创 Mybatis-association和collection标签的使用
主要是关于员工表和部门表的查询,建表语句在后面。数据库和实体类中的字段名是相同的//部门表//部门编号//部门名称//员工集合@Overridereturn "部门:"+did+" "+dname+" "+employeeList;//员工表//员工编号//部门信息@Overridereturn "员工:"+id+" "+eid+" "+name+" "+age+" "+email+" "+did+" "+department1;
2024-03-28 15:10:24
1423
原创 【力扣】78.子集(回溯)
这道题主要是用的回溯的方法来做的,我是参考的代码回想录里面的思路来写的。刚开始的话我致力于一定要把这个完整的过程推一遍,不推到底我不死心,感觉用掉了自己很多的时间,但是也算是弄懂了吧,就是弄透还是需要一点时间。我的结论是for循环控制的就是每一层的递归。比如说nums=[1,2,3],长度为3,则第一层遍历的就是以1为结点的递归,然后在每一层的开始进行收割。第二、三层便以此进行递归。
2024-03-13 21:42:48
443
原创 【力扣】208.实现Trie
其次,我们需要写出插入、查找前缀、搜索的函数,插入的函数思路就是我们先判断该字母是否在26个字母表中出现过,如果没有那就创建一个新的结点进行链接就可以了。这里的next[26]是每个结点都会有的。首先,什么是前缀树呢,借用一下力扣大佬讲解的图。那我们需要做的就是将题目所给的word拆分成一个个字母,然后按照其顺序(我指的是单词的顺序)一个个插入,有点像链表,但这里用到的是结构体。虽然说万变不离其宗,但是我就觉得刷洛谷的题让我心情烦躁,刷不下去。这道题目其实挺简单的,但是刚开始我没看懂是啥意思。
2024-03-05 21:44:01
555
原创 【蓝桥杯】带分数
首先就是我们可以直接将给出的数组a[n]里面的数字看成是一个连续的,然后再在此基础上进行断点,同时利用next_permutation得出其全排序,但是要注意的是每次生成的都不能是一样的。这道题的解法我想着的就是暴力枚举,但是我觉得肯定还有其他的解法,所以这里给出的就是一个大神的解法再加上自己的理解。这道题之前一直编译失败我以为是我代码写错了,结果是一个分号打成中文的了,哭死!
2024-03-02 16:07:35
502
原创 【蓝桥杯】错误票据
想着要不把他放到一个数组里面去,先排个序,还后有重复的存在那就是重复的数,再遍历一下,缺少的就是断掉的数,复杂吧,然后看了别人的题解之后,我想着damn it!今天是2024年3月1号,蓝桥杯比赛还有一个月的时间,虽说自己不指望拿奖吧,但是还是有些莫i名的焦虑,这道题目都做不出来,感觉自己真的有点菜啊!首先就是这个票据是连续的,所以我们可以直接就用一个数组来存,下标就是票据中的数字,具体的数值那就是存放的次数。然后再遍历,出现一次且前后都有当下的数为0的那就代表是断号,出现两次的那就是重复的数。
2024-03-01 15:54:18
587
原创 【力扣】207.课程表(图)
就是搞清楚题目的意思。假设你想学习A课程,那就是必须先学习B课程,但是这里给出的例子只有两个,我们要知道的是不一定只有B课程,可能还有其他的比如说C、D课程,要把这些都学完了你猜可以学A,同时A也可能成为某种课程的充分条件,那么这里我们就可以知道这就是图类题目的形式。需要注意的是,题目给出的numCourse就是所有课程的种树,那我们就可以通过设置一个计时器,来记录有学某种课程的总数量,最后比较,若相等则返回true,反之返回false。最后完整的代码如下,我也是参考力扣上面其他的大神的,一起加油吧!
2024-02-29 16:32:00
474
原创 【力扣】994.腐烂的橘子
这个题目一看就是用BFS法,并结合队列的使用,但是我不知道怎么用。具体就是先遍历一遍二维数组,得出所有新鲜橘子的数量,然后将烂掉的橘子收入队列中,后面再往四个方向进行腐烂的操作。再将已经腐烂掉的橘子收入队列中即可。2、用一个二维数组来控制其四周的移动。1、临界条件:直到没有新鲜橘子。
2024-02-28 20:07:41
459
原创 【力扣】200.岛屿数量+695.岛屿的面积
这道题目是用的dfs算法,也就是深度遍历,结合题目的意思,那就可以视作是每一次dfs的终止,便意味一座岛屿的诞生。与此同时,这道题目的解法也可以迁移至与此相同的题目当中。
2024-02-27 16:33:25
437
原创 【力扣】169.多数元素
首先题目的意思是存在数字,意思就是最后返回的结果不可能为空就是了,所以便不用考虑{1,2,3,4,5}这种例子。那么就可以用哈希表存所出现数字出现的次数,然后如果不用打擂台的思想,其实还要再遍历一遍哈希表,这样时间复杂度就够够的了。然后还有一种解法就是排序,这个更简单了,已知存在,那么我们就将这个数字进行一个排序,然后折中取即可。(数组是从0开始排序的)这个打擂台的思想就是人多者取胜,最后留下来的就是王,关于这里的解释大家可以看一下这个博主写的。需要注意的是这里不存在谁比谁强的问题,所以请不要较真哦~
2024-02-17 22:13:38
400
原创 【力扣】5.最长回文子串
中心思想就是先判断两端的是否相等,若是则 dp[i][j] = true,然后是从短到长的一个过程,与此同时不断更新最长子串的下标,最后再返回,代码里面有详细的解释。首先就是判断一个字符串是不是回文,我们可以设置两个指针,从前往后进行判断即可,运用暴力解题法,这里运用的动态规划法主要是要搞清楚原理即可。这道题我主要是通过动态规划来进行解题,看了我好久(解析),生疏了呀。
2024-02-13 23:42:58
554
原创 【力扣】20.有效的括号
这道题是栈的常考题型,应该是吧。我们可以用哈希表的形式,键值对嘛,然后( [ { 这类的入栈,然后碰到其与之相对应的那就出栈,最后的情况那要是栈为空的情况就返回true.反之则返回false,不考虑( [ ) ]的这种情况,如果考虑,那就false了。家人们,看这排序,一看就很简单,对吧?不对,我觉得还挺不是很容易的,哈哈哈。在看题目的时候,我一开始的解题思路就挺复杂的。
2023-12-28 18:55:14
508
原创 105. 从前序与中序遍历序列构造二叉树
一旦将递归难度升个级,我就真不会了,呜呜呜呜呜。好难过,这个题目我代码都看了好久。1、就是先用一个map映射,映射的是中序遍历中每个值所对应的下标,这里不是下标对应节点值。然后我们再进行递归操作。2、结束条件是:此时前序遍历的根节点的左边界大于右边界,也就是说,此时结点为空,没有左右子树,结束递归。因为题目给出的是数组,所以我们需要将数组和二叉树对应起来。3、然后呢,根据前序遍历,那我们可以得到根节点,然后再根据中序遍历可以计算出当前节点的左子树的数量,通过递归构造左右子树即可。
2023-12-27 20:39:39
436
原创 【力扣】114.二叉树展开为链表
在做这个题目之前,如果可以的话,请先将144.前序遍历的题目做一下,这样你将会对前序、中序、后序遍历有一个比较清晰的了解。特别是这三者与递归相结合,嗯,真的很有意思。关于这道题,我会给出两种解法。其中法二是对法一的优化。
2023-12-26 10:34:52
396
原创 【力扣】199.二叉树的右视图
看到这个题目的一瞬间,我想递归,必须用递归。最近被递归折磨的有点狠,但是我感觉我快要打败它了,就是现在稍稍有点处于劣势。不过没关系,来日方长不是。
2023-12-25 21:02:39
552
原创 230.二叉树中第k小的元素
这道题我的想法是遍历二叉搜索树然后将其中每个结点的元素值加入到set集合中,让其自动进行一个升序排列,最后再取出即可。但是看了官方的解答之后,我发现二叉搜索树+中序遍历就可以得到一个升序的,em,怎么说,反正就是它是升序的,那这样的话比我的那就容易多了,至于那个官方的另外一个解题方法结点的,我就没有再多加深入了。
2023-12-24 17:49:54
307
原创 【力扣】148.排序链表
怎么说,这道题看上去挺简单的,但是要搞清楚的知识点那还真不少,刷题好痛苦,但是要刷!嘿嘿~首先,要搞懂归并排序,然后是递归。这道题我刚开始想的是递归,但是题友说时间超限,所以我就复习了一下归并,废话挺多的,嘿嘿,见谅啦~
2023-12-20 19:30:15
414
原创 【力扣】19. 删除链表的倒数第 N 个结点
大家有没有发现其实法一和法二其实差不多,用栈的时候遍历一下就相当于长度的计算,快慢指针也很有意思,我觉得嗷~总有些坑是要自己踩了才会影响深刻的,也会更加强大,所以,多多踩坑吧,宝子们~祝你生活愉快~刷题幸福哦~
2023-12-14 19:40:39
504
原创 【力扣】21.合并两个有序链表
生活真的是不容易啊,我感觉刷题就是正视智商的过程。它视我为渣渣,我视它为大腿。必须练!必须坚持!爬坡哪有不辛苦的啊~虽然这个力扣上面的这个题目标注的是简单,simple,可是我觉得在递归上面是一点也不简单,哼!(我好笨,呜呜呜~)
2023-12-12 17:45:18
406
原创 【力扣】141和142环形链表
用两个指针slow,fast,后者能比前者多走一步路,那判断是不是有环,只需要判断是否会相遇。就是有一个能比乌龟跑2倍快的兔子,两小只都在有环的路上跑,那是不是肯定会相遇。嗯,对!
2023-12-09 19:43:26
746
原创 【力扣】160.相交链表
其中P1,P2不相交的长度分别是a,b,相交的长度是c。那么当链表p1一直在遍历的时候直到其为空,我们让他指向p2的头结点,同理p2也是一样,这样两个链表均会在走了a+c+b之后在相交点同时到达。1、相交:现在已知二者相交,那么当两个链表长度相同的时候,可以是同时到达的,这个的实现直接就用while循环就行了。但是当二者长度不相同时,那如何能让其指针指向相同的target呢,是不是只要遍历的长度一样就可以了?但是当真正的开始学习之后,发现现在的脑袋还是能用的,所以不要放弃,你可以的!这里就说一下我的理解。
2023-12-07 10:17:53
499
原创 【力扣】240.搜索二维矩阵
题目意思是从该矩阵之中查找出是否有和target一样的值,若有则返回true,无则返回false。这里我用的是java。总共有三种方法,分别是暴力解题法(能过),二分查找法(就是将二维数组拆分成m个二维数组),Z字形查找法。重点是讲Z字形查找法,因为在了解该方法之后我觉得自己像傻逼一样,笨,哈哈哈,开个玩笑。这里代码我是参考的官方。Z字形解题法原理就是二叉树,在这里的话我们是从该二维数组的最右边(假设为matrix[x][y])开始查的。
2023-12-06 11:00:36
571
原创 【力扣】54. 螺旋矩阵
此时左边界是否小于右边界,上边界是否小于下边界,如果满足条件的话那就证明里面还有元素需要处理,那这个时候就进行从右至左,从下至上的操作。这里当然就不能只是通过双循环来解题了,因为会烦死。这道题的关键点在于左右边界的确定,参考官方解题法在这里写出我的解题思路。看图,螺旋且顺时针,所以我们可以先遍历从左至右的,上边界加一向下移,然后从上至下,右边界-1向左移,这样就能保证。待到从右至左的时候我们需要。
2023-12-05 17:21:14
479
原创 力扣100题——子串
这道题目不是滑动窗口的类型,因为长度并不是固定的。(好的,我在说废话)注意题目要求是子数组,且是的。那这里的话,解法有很多,最简单的就是暴力解法,但在这里我想说的是优化,嘿嘿,适当的参考了一下官方的解题办法。ok,来。首先什么是前缀和,先看个列子:有个数组:nums=[1,2,3,4,5,6],那么他的前缀和就是0,1,3,6,10,15,21。当i=0的时候,前缀和是0,当i=1的时候,前缀和是1,当i=2的时候,前缀和是0+1+2=3,以此类推。
2023-11-11 21:18:49
253
原创 【Python】二维码和条形码的识别
1、从文件中加载图像的时候注意图片尽量用英文来命名,因为中文无法识别到图片2、使用绝对地址的时候要用两个双斜杠,因为用一个会被识别为Unicode 转义,但是并没有后续的合法 Unicode 编码,因此引发了SyntaxError。如图所示:
2023-11-11 19:42:34
1099
原创 【Linux】rpm和yum的使用
大家一定有注意到课本中都是有<harli@localhost ~ Package>这样的前提下然后进行安装的,如果不是的话那就先不是了,然后就发现自己进不去,因为找不到那样的文件或者目录,然后就卡死了。所以解决办法呢,就是首先我们先点开虚拟机的设置,然后进行配置,看下图通过这样设置以后,会出现下面的页面,如果你的没有,可能是需要重启。然后我们点进去,找到media就可以了。下面的是对其的相应介绍。
2023-10-27 15:15:51
137
原创 KNN-水仙花的分类
1、处理数据集,这里用的是题目已知的数据集,所以说需要提前将写好的数据放到excel表格里,再进行读取。2、将数据集划分为训练集和测试集。3、定义K-NN模型。
2023-10-24 23:45:00
685
原创 1726.同积元组
这道题的话,很有意思,我差一点就连题解看不懂了。首先统计数组中所有两个元素相乘的个数,然后你知道的,如果cnt是1,会被淘汰的。所以就不用担心这方面的问题。ok,看下面就是,再从相同乘积的元组中选出2个来,接着乘以8,因为4个元素的元组的排列共有8种,因为题目中的a*b和c*d,ab和cd是绑定的,所以顺序就是2*2+2*2=8,希望你不会和我一样卡在这里,哈哈。所以公式就是v*(v-1)/2*8*
2023-10-19 19:22:00
112
原创 【力扣】42. 接雨水
height[1]入栈,指针后移,此时指针所指向的元素小于栈顶元素,height[2]入栈指针后移,height[3]>height[2],所以height[2]出栈 ,找到height[2]左边的比他大的元素,也就是栈顶元素。祝各位刷题人happy!这道题我卡了差不多1个小时,不是不会做,是不知道怎么能用栈来实现,后面看了一个博主的视频,豁然开朗,我主要的纠结点在于当指针指到7的时候,我计算出4到7的水块是2,但实际上是0,因为用栈是横向求解的,就是你横着来切一刀就行,然后掌握其原理。
2023-10-07 21:39:30
233
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人