自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Springboot|返回公共类结果&多表查询

注意一下Controller类的返回值类型即可。把多表查询重合的字段重新定位为新的实体类。实体类中加入写好的公共返回类。mapper接口往常一样定义。定义Controller类。

2023-02-03 13:14:54 416

原创 Idea创建Springboot项目并链接数据库

注意@Autowired自动装配的前提是要在Dao接口上添加@Mapper。

2023-01-02 21:14:27 2147

原创 训练营day22|二叉树(二叉搜索树的最近公共祖先|插入操作|删除节点)

235.二叉搜索树是有序数组,找到cur节点在p和q结点值中间,则cur节点则是结果。

2022-12-26 14:30:10 155

原创 训练营day21|二叉树(二叉搜索树的最小绝对差/众数|二叉树的最近公共祖先)

而在有序数组中,我一开始担心的就是虽然用cnt记录了当前数出现的次数,但是我如何才能知道,什么时候cnt是最大值,我要把这个数放进结果集里面?双指针方法,利用一个指针pre在递归中记录上一个指针,point:pre初始化为null。分为两步骤,一部分计算当前的cnt就是当前这个数出现的次数。二叉树的最近公共祖先,需要回溯遍历整个树,然后把结果返回给头结点。在普通树上进行搜索,将中序遍历数组放在map里面统计数和个数。差值是一个正数,其数值等于两值之差的绝对值。2022.11.27补。

2022-11-27 16:16:56 276

原创 训练营day20|二叉树(最大二叉树|合并二叉树|二叉搜索树中的搜索|验证二叉搜索树)

你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。利用long的min值的主要原因是LeetCode的测试案例有int类型的min值故采用long的min值。给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。递归方法,基于二叉搜索树的特性,左子树的值根节点的值。而且二叉搜索树在中序遍历后的数组中呈单调递增,利用这个特性来写递归函数。

2022-11-26 14:26:40 229

原创 训练营day18|二叉树(找树左下角值|路径总和|中序和后序构造二叉树)

卡了好久以为自己思路有误,因为打印出来paths的全路径出不来,只能出第一个,还以为是在递归过程中出现了什么问题(但是总体思路在上一题的基础上,计算每一次路径的和,以及回溯不仅在paths要移除那个数,并且在和的基础上药减去那个数的值)。寻找二叉树中符合目标值的路径是否存在,point这边递归中的参数,count,是与targetSum的差值要减去当前结点的值,去判断最后是否为0.以 后序数组的最后一个元素为切割点,先切中序数组,根据中序数组,反过来在切后序数组。还是不太会以后补代码。

2022-11-24 14:36:21 132

原创 训练营1007|二叉树(平衡二叉树|所有路径|左叶子之和)day17

自底向上递归的做法类似于后序遍历,对于当前遍历到的节点,先递归地判断其左右子树是否平衡,再判断以当前节点为根的子树是否平衡。一开始debug没有通过的版本是将高度差不超过1直接return true,然后最后return左右子树是否是平衡子树,这边错误的原因是,如果高度差不超过1走if逻辑的话,可以走最后是否是平衡子树逻辑的就是高度差会超过1的时候。注意:短路或的优化,先判断左子树是不是平衡的,要是左子树不是平衡的也没必要去判断右子树是否平衡。平衡二叉树:左右子树的高度差不超过1.2022.11.23补。

2022-11-23 10:58:30 365

原创 训练营1006|二叉树(最大深度|最小深度|完全二叉树结点个数)

所以我们的最小深度,到达的是叶子结点,是左右都为空的结点,这个也是跟最大深度的不同点。在完全二叉树中,如果递归向左遍历的深度等于递归向右遍历的深度,那说明就是满二叉树。这边感觉有点坑的就是,如果这个二叉树是一条链,最小深度应该还是长度。如果左子树为空,右子树不为空,说明最小深度是 1 + 右子树的深度。反之,右子树为空,左子树不为空,最小深度是 1 + 左子树的深度。,所以本题中我们通过后序求的根节点高度来求的二叉树最大深度。迭代----->利用层次遍历,每一层cnt++2022.10.23补。

2022-10-23 17:31:11 610

原创 训练营1005|二叉树(层序遍历|翻转|对称)

深度优先------>递归。简化递归的想象过程,如果只有一个结点,就是a树,b树去判断这个结点空吗,如果不空就要判断值。然后递归开始,是因为如果结点多了起来,一样的去判断。层序遍历----->利用队列,每一层每一层的放进去,因此我们判断循环是否结束的条件是,queue里面是否为空。利用层次遍历,在层次遍历的基础上,每次从队列中取出两个数(两根树压进去的结点值)。检查是否对称,无论是递归还是迭代,,即在a树,b树的基础上,各看一半。广度优先遍历----->迭代。这边不可以少任何一组,2022.10.23补。

2022-10-23 14:44:03 108

原创 训练营1004|二叉树(递归遍历|迭代遍历|统一迭代)

平衡二叉搜索树:又被称为AVL(Adelson-Velsky and Landis)树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。那么链式存储方式就用指针, 顺序存储的方式就是用数组。顺序存储的元素在内存是连续分布的,而链式存储则是通过指针把分布在散落在各个地址的节点串联一起。跟前序一样的模拟的是一个进栈和出栈,区别就是什么时候把栈里面的元素加入结果集呢?,直到压到空的时候,node变为现在。,而中序,左孩子先遍历,所以。

2022-10-22 15:52:53 152

原创 训练营1003|栈与队列系列(逆波兰式|滑动窗口最大值|前k个高频元素)

小顶堆能够保证队头元素是最小的,当queue里面的元素个数超过k并且当前要加的元素,比队头元素的值要大,就把队头元素弹出,并且把这个数加进queue里面,优先队列会自动帮你排序,不需要担心顺序问题。

2022-10-13 20:43:15 112

原创 Java八股|大纲(Java基础|集合|多线程|JVM|Redis|MySql)

这个要从java的内存机制去分析,首先当你 New 一个对象的时候,并不是先在堆中为对象开辟内存空间,而是先将类中的(带有static修饰的静态函数)的代码,然后。所以说静态方法会随着类的加载而被加载。当你new一个对象时,该对象存在于堆内存中,this关键字一般指该对象,但是如果没有 new对象,而是通过类名调用该类的静态方法也可以。

2022-10-10 21:39:19 528

原创 训练营1001|栈与队列系列(互相实现|有效括号|删除相邻重复项)

232.首先如果用栈和队列互相实现的话,都是用两个。并且栈和队列可以互相转化,所以图的深度优先遍历还是广度优先遍历都是可以使用栈和队列实现的。然后还有一些细节需要care,在pop的时候就要先将stackIn里面的所有数据都倒进stackOut里面,然后pop数出来。

2022-10-10 13:01:43 76

原创 训练营0930|字符串(重复的子字符串|字符串总结|双指针)

在字符串章节,常见的库函数比如,valueof,substring,fill,contain等要熟练,并且字符串这边整体翻转然后再局部翻转的思想。并且字符串的大头KMP算法,包括两大部分,next数组,以及具体查找的时候是怎么跳的,一定要掌握清楚。双指针算法在翻转字符串,还是滑动窗口这边都有一个广泛的应用,以及去找倒数第k个结点(链表),使用快慢指针的操作要熟练。2022.10.09补。

2022-10-09 12:27:18 132

原创 训练营0929|字符串KMP算法

KMP还是磨了蛮久的,其实说实话写到现在说很懂也不能算,不过大概过程分为两部分,next数组求解,和整体求解。此间有最长公共前后缀来构建next数组,而next数组的解法可以动态规划优化,并且代码里面我采用的是cn标注去参考的前缀处地方,有的参考代码直接省去了这个步骤直接用的j。包括整体求解的时候,i不动,j往前动,动到next数组的下标。之后复习的时候还得再多轮几遍2022.10.08补。

2022-10-08 17:55:22 213

原创 训练营0928|字符串系列(反转I|反转II|替换空格|翻转单词|左旋转字符串)

其实本来第一反应是转成char数组去做,但是空格要转成“%20”并不是一个字符,之后想到是否可以用buffer的replace直接做。然后看了别人的思路之后发现利用char数组的话可以先扩容,然后利用双指针,一个指向扩容之后的结尾,一个指向本来的结尾,进行数据填充。但是如果空间复杂度为O(1)的话不使用额外空间只在原字符串上面操作----->使用整体翻转然后局部翻转的策略。,慢指针维护边界,快指针去找符合的字符,然后每多个空格添加单个空格。看了解析之后如果空间复杂度为O(1)的话,可以使用快慢指针,即。

2022-10-08 10:40:02 62

原创 训练营0927|哈希表系列(四数相加|赎金信|三数之和|四数之和)

四个数组里面寻找四个数相加和为0.巧妙的去利用hashmap判断是否存在的功能,hashmap1里面放前两个数组的和,以及这个和出现的次数。双指针的思想,以及如何去重------>注意相等之后对right和left的去重并且right--和left++避免内存溢出。四元组的和为target即在三数之和的基础上,再加上一层for循环,并且剪枝的条件要相比于三数之和的基础上更为复杂些。hashmap2里面放后两个数组的和(或者和的相反数)----->判断是否存在于hashmap1里面。2022.10.03补。

2022-10-03 15:02:06 185

原创 训练营0926|哈希表系列

面经:==是位运算符,equals是方法,==只是单纯判断值是否相同,引用地址的指向是否同,而可以通过重写equals去判断对象内部。重点是重复的key怎么将其合理的放进hashmap里面并且后面的值不能把前面的覆盖。把两个数组里面的数以及他们出现的个数放进hashmap里面,然后去找相交的部分。1.两个重复的值和为target------>在put之前进行判断。2.两个重复的值和不为target-------->取谁都一样。只能说论一个==与equals的区别对人的折磨有多大。

2022-09-30 18:23:17 68

原创 训练营0924|链表系列(两两交换/倒数删除/链表相交/环形链表)

快慢指针,fast走两步,slow走一步,然后fast和slow如果走不到头的话,就是有环,有环返回相交的第一个结点。*之前听过不少算法课,感觉在链表这边用快慢指针还是特别频繁的,包括判环,判相交。,快指针先走n步,然后慢指针和快指针同时移动,最后快指针暂停的位置,慢指针便是要移除的数。再者还有一个point就是空指针,我经常会遇到空指针的异常,所以如何避免是很重要的。第一反应就是暴力做法,先遍历一下知道他有多少个结点,然后正向删除。本题主要是模拟指针交换的过程,重点还是之前说的,

2022-09-25 11:07:39 114

原创 训练营0923|链表(移除,设计,反转)

这道题看上去特别简单,我一上来就是个cur遍历然后不就是但是本题重点是边界的处理,中间部分移除是很简单,头部呢,尾部呢,这个是我没有考虑到的地方或者也可以使用虚拟头结点707.这一题的index是真的折磨人。以及找结点的前一个还是本人真的要考虑清楚,一个删除结点中i的遍历范围的bug找了好久。

2022-09-24 09:50:15 174

原创 训练营0922|数组系列

看见题目的第一反应就是暴力解法,挨个平方之后排序但如果说要用双指针我就很懵,双指针?slow和fast的话两者是什么意义?想了一下还是没想通最后索性去看讲解了如果一个数组有序,包含负数的话,平方之后最大数的出现肯定是原始数组两端的数,然后两指针逐渐往中间缩。当然这还有一个前提就是,不去合并平方后的值相同的情况。当然就算要合并,也变成的题了。利用双指针缩窗口里面的值看是否满足条件(本题中是和值>=target)right指针一直外扩,扩到符合条件的时候去缩left指针。

2022-09-23 09:27:01 271

原创 训练营0921| leetcode以二分查找为例的双指针系列题

双指针相关

2022-09-21 12:59:26 767

原创 二叉树相关基本操作

无论是前序中序还是后序的代码只有一处输出语句的不同,这个跟。前序(根左右)我们手动模拟的话结果是。先看一下前序遍历对这棵树。

2022-09-12 17:58:40 185

原创 JavaWeb

2022-09-11 19:42:57 64

原创 动态规划系列

在LeetCode上刷动态规划刷到崩溃,因为一个=没过AC找了半天毛病,本来都不打算写blog了,但是这么痛苦还是记录一下这几天对动态规划的浅浅的理解,以及刷题感悟。毕竟动态规划这个系列的问题还是很重要的,彻底理解还是需要很多的时间,不能光一边掰苞米,一边扔苞米首先适用于动态规划的场景:将一个规模比较大的问题划分为k个子问题,但是这也是动态规划区别于分治算法的一个很重要的部分。

2022-09-11 18:32:20 301

原创 LeetCode检查相同字母间的距离(第309周赛第一题)

得到相同字符之间距离之后,就要在distance数组之中比较是否相等,不相等的话则break掉并且直接返回false,但是倘若要是能直接跑下来,就证明都是相等的,所以将flag的初始值置为true。输入:s = "abaccb", distance = [1,3,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]字母表中的每个字母按从 0 到 25 依次编号(即,'a' -> 0, 'b' -> 1, 'c' -> 2, ... , 'z' -> 25)。

2022-09-05 14:55:59 178

原创 位运算(异或+与运算)

一个数&上自己的取反+1就能将最右边的1提取。注:a和b不可以指向内存同一块区域。(异或运算满足交换律和结合律)也可利用异或寻找数组中奇数次的数。(异或运算--无进位相加)(相同为0,不同为1)

2022-09-05 10:47:17 94

原创 JDBC快速上手

将jar包放入新建的lib文件夹中,注意要跟mysql版本一样。新建一个java模块。

2022-09-03 16:39:20 176

原创 第三方组件element-ui和图标库Font Awesome使用

在main.js里面添加如下代码,导入element-ui。在绑定的xxx.vue里面加入代码。安装成功之后,文件夹会多出一个。我加入的是隐藏tooltip代码。在main.js中加入。

2022-09-03 11:02:26 899

原创 Java创建一个Web项目

之前创建的时候我的idea都不会自动生成web文件夹用来放入前端代码,解决之后写下这篇记录一下,企业版的idea怎么创建一个web项目。

2022-09-02 15:59:49 158

原创 LeetCode和有限的最长子序列(Java)307竞赛第一题

从题目中不难得出,answer数组长度与queries数组长度一致,而题目本质含义是在queries数组里面,在nums数组中查找出比其小的数的最长长度(这些数的和要比queries[i]来的小)如此我们不难写出两个for循环遍历两个数组后嵌套两个if判断,来确定有几个数要加入cnt的长度统计之中。返回一个长度为 m 的数组 answer ,其中 answer[i] 是 nums 中 元素之和小于等于 queries[i] 的 子序列 的 最大 长度。- 子序列 [2,1] 的和小于或等于 3。

2022-09-02 15:18:07 253

原创 Java常见一维数组排序方式(插入排序,归并排序,快排)

冒泡排序就是重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。先找到最小元素所在位置的索引,然后将该元素与第一位上的元素进行交换。:利用Arrays封装好的函数。

2022-09-02 15:10:09 2219 1

原创 LeetCode网页瀑布流(Java)第308周赛第一题

不难得出在block数组中始终只保留num个数,而从num之后的数每次加在前num个数中最小的一个。网页布局中有一种瀑布流布局方式,表现为参差不齐的多栏布局。保留num个数,并且找到最小的数之后要从该数的基础上加上新的数,并且还在该索引中。第一次提交中我并没有采取到if-else,当时并没有考虑如果num比block数组长度大如何处理,当考虑进去即比较block数组中取最大值。当页面按顺序加载完所有的数据块后,请返回高度最大的那一列的高度。列,该网页有若干数据块可以加载,已知当前网页共分割为。

2022-09-02 13:14:53 283

原创 创建Vue项目

NPM(Node Package Manager)是一个NodeJS包管理和分发工具,NPM最常见的用法就是用于安装和更新依赖。要使用NPM,首先要安装Node工具。

2022-09-02 12:44:56 168

原创 Springboot与数据库操作

类里面的属性与表里面属性一致return id;}}(可使用Alt+Insert快速编写)(我将快捷键更改为了Alt+0)@Mapper@Select("select *from user")//数据库语句自动查找数据库}UserController类://接口不可以new,方法进行声明@Autowired //自动注入Usermapperreturn "查询用户";}}...

2022-09-01 17:07:53 619

原创 Springboot文件上传原理(Postman)

表单的enctype的默认属性时,form中为:key=value&key=value。嵌入的tomcat限制了请求的文件大小,每个默认为1MB,单次请求不能超过10MB。使用MultipartFile获取上传的数据,transferTo方法写入数据。Java控制台对上传相关内容进行打印。在properties中进行更改配置。2.更改每个请求文件的大小。Postman发送请求后。需要将此属性值进行更改,...

2022-09-01 14:59:24 744

原创 Mybatis-Plus+Springboot链接数据库初始配置

在主类中添加,第二行。链接copy path-path reference。mapper里面定义的均为接口。,数据库端口一般为3306。下载完成后标红处消失。

2022-09-01 14:40:53 468

原创 C#方法参数练习

属性设为true,允许多行显示。按照要求置放位置,以及。从左侧栏工具箱中拖拽。

2022-03-05 13:48:39 96

编译原理final.zip

编译原理final.zip

2022-09-05

微机原理final.zip

微机原理final.zip

2022-09-05

操作系统习题六.zip

操作系统习题六.zip

2022-09-04

计算机网络final期末知识点.zip

计算机网络final期末知识点.zip

2022-09-04

空空如也

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

TA关注的人

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