自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 黑马程序员MybatisPlus/Docker相关内容

原SQL语句的写法:一个java项目的镜像的结构是这样的左边是:从linux系统开始一步一步去创建dockerfile文件。右边是直接创建出了jre的镜像,包含了前面红色部分的内容。练习:将黑马资料中的文件上传到root目录下通过 docker load -i jkd.tar 来加载资料中提供的jkd的镜像进入dockerfile所在的目录下执行通过命令查看构建的镜像启动构建的docker镜像查看对应的所有容器docker ps根据docker的name来加载对应的日志。

2024-12-02 19:20:12 981 1

原创 SpringSecurity认证授权具体流程步骤(具体实例)

创建出五个表,五个表之间的关系为:sys_user:登录表,用于登陆后查询idsys_user_role:用于根据用用户的id来查询到role_ idsys_role_function:用于通过role_id来查询对应的fun_idsys_function:用于通过fun_id来查询对应的方法,以及fun_code方法权限。

2023-07-27 16:56:07 456

原创 代码随想录之二叉搜索树的插入操作

迭代法的思想就是找到最适合插入的结点,在最适合插入的结点来进行插入操作。思路:本题的思想较为简单,直接找到适合插入的结点来进行插入即可。

2023-07-13 16:40:27 533

原创 代码随想录之二叉搜索树中的众数

思路:二叉搜索树相关的算法题要使用到二叉搜索树的特性,本题的难点是如何将出现相同次数的众数保存起来,以及count条件的转换。总结:本题的难点是终止条件的判断,以及最大的众数的切换的条件,迭代的思路与上一题中大致相同,只需要注意条件的改变。解法二:使用迭代的方式,二叉树的中序遍历。解法一:使用递归的方法来完成。

2023-07-10 10:58:27 390

原创 代码随想录之二叉搜索树的最小绝对值差

思路:本题是二叉排序树,所以我们进行中序遍历就能将二叉树按照递增的顺序来进行排序,然后我们只需要比较两个相邻的结点找到最小值即可。解法3: 将该二叉树使用中序遍历得到一个新的数组,再在数据中找到两个两个之间的最小绝对值的差。递归:思路与上题验证二叉搜索树有着相同的思想,使用pre结点来保存上一个结点,然后进行节点之间的比较。迭代的思想去输出,将中序遍历的迭代法改善一下即可。

2023-07-09 16:21:12 346

原创 代码随想录之验证二叉搜索树

递归的解法思路与简洁迭代的思路相同,中序遍历来进行结点的比较。因为右子树比中间结点的值要大,所以max=root应该在跳转右节点之前。按照中序遍历的迭代去写,本题最主要的是平衡结点的判定条件,思路是每次都与前一个结点来进行对比,重点以及易错点就是下面备注的地方。解法一:使用简洁迭代的思想。解法二:使用递归的解法。

2023-07-07 13:42:07 228

原创 代码随想录之二叉搜索树中的搜索

解法二:使用二叉树的迭代法,使用栈来直接完成迭代的过程,不使用二叉搜索树的特性。使用递归的解法,主要是利用二叉搜索数的特性来完成。解法三:使用二叉搜索树的特性来完成迭代。

2023-05-09 17:41:03 112

原创 代码随想录之合并二叉树

将两棵树都合并成为一棵树root1,把root1作为合并后的结果来返回。本题说明,本题有两种思路,分别是递归的方法与迭代的方法。

2023-05-08 19:41:25 85

原创 代码随想录之构造最大二叉树

本题思路:本题是使用构造二叉树的思路去完成,二叉树构造的题目一定要用先序的顺序去构造。同时思路在题目中的数组都是左闭右开。找每一组当中的最大值的写法。

2023-05-08 18:52:32 87

原创 代码随想录之根据前序与中序序列构造二叉树

【代码】代码随想录之根据前序与中序序列构造二叉树。

2023-04-29 19:13:29 79

原创 代码随想录之路经总和

解法二:使用层序遍历,将父亲节点的值加到子节点当中去,然后使用层序遍历的方式,依次遍历结点,判断结点的值是否与target相同。本题的思路较为简单,只需要用target来减去值即可。本题使用了时间回溯的解法,因为要返回的是具体的路径。本题的结束条件需要判断target与每一个值。解法一:使用递归的方法。

2023-04-27 17:33:01 124

原创 代码随想录之找树左下角的值

使用递归的方法,找到也在最左下角的叶子节点。从最高层开始向下去寻找,同时记录二叉树结点的深度,找到最大深度的左结点。笔者的思路是使用层序遍历的方法,一层一层的去遍历,每一层中的第一个就是最左边的叶子结点,直到找到最后一层的值。

2023-04-26 17:20:03 116

原创 代码随想录之左叶子之和

本题的递归的思路是,用后续遍历的方式,由上到下,把左右节点的值记录在中间的节点当中,由上到下把值加起来就得到了最终的结果,因为本题要找的是左叶子,左叶子的判断方法有点不同,注意本题当中递归的判断条件。使用迭代的解法,一个结点一个结点的进行判断。注意左右结点的判空操作。

2023-04-24 21:10:47 80

原创 代码随想录之二叉树的所有路径

解法一:递归 + 回溯。

2023-04-22 21:18:01 110

原创 代码随想录之平衡二叉树

用求深度的方法,用先序的方式来完成,从头结点开始,逐渐往下。用求高度的解法,从低到高,用后序遍历的方式来完成。解法二的实现不好写。

2023-04-22 19:44:11 169

原创 迷你共享单车——面向对象完整版

本人自己实现的方法代码的冗余程度比较高,而且每个方法的传递参数过多,容易造成思路的混乱,需要改进。1.人机交互文件不是最终的程序入口,程序入口只需像App文件当中一样去实现2.方法的实现由小到大写入文件,比如车辆的增删改查的方法实现在车辆公司类当中,车辆公司的具体方法实现在人机交互类当中。具体为:在ShareBikeMgr文件当中实现公司对象的创建:在这个文件当中实现公司的具体方法:然后再在ShareBikeCompany当中去实现车辆的具体操作。多思考思考其中的意思。

2023-04-22 15:37:48 2031

原创 代码随想录之完全二叉树的节点个数

利用完全二叉数的特性,该解法,笔者没有想出来,也没有学会,记录在此。广度优先遍历,迭代法。

2023-04-21 20:42:40 110

原创 代码随想录之二叉树的最小深度

本题要求的是二叉树的最小深度,所以二叉树的终止条件发生改变,当只要左右结点只要有一个是空的时间就结束递归。在每次遍历一层的时间,判断这个结点是不是叶子结点,如果是叶子结点的话就return,因为求的是最小长度。本题的思路与求最大深度相似,但是有有不同。:迭代法,使用队列来模拟存储的过程。

2023-04-21 19:32:23 78

原创 代码随想录之二叉树的最大深度(补充n叉树的最大深度)

思想比较繁琐,因为length的++与–,每次进入一次递归,代表进入下一层,所以说leng需要++,但是当退出一层的递归表示返回上一层,这是的深度需要减减。N叉树的迭代与二叉树的区别在于N叉树要多加一个循环来判断N叉树的孩子,将N叉树的孩子一个一个加入队列当中。用后序遍历的方法,求出根节点的最大高度,返回根节点的值就是二叉树的最大深度。N叉树的最大深度,与二叉树的最大深度有很多相似的地方。二叉树的深度:二叉树中的结点到根节点的距离。使用迭代的方式,使用队列,进行层序遍历,计算层序的深度。

2023-04-21 19:04:21 85

原创 代码随想录之对称二叉树

本题中,要判断是否是二叉树,所以使用的是boolean类型,终止条件是,左右子树其中一个是null或者左右子树的值不相等。递归的是外层与外层结点,内层与内层的结点。只要内层与内层相同,且外层与外层相同,才返回true。使用队列来模拟结点的对比的过程。将外层结点与外层结点一起入队,内层与内层入队。最后比较这结点的值是否相同。解法三:使用栈,使用栈的思路与队列相同,不再赘述。外层:左节点的左孩子 和 右节点的右孩子。内层:左孩子的右节点 和 右孩子的左节点。2.确定递归的终止条件。

2023-04-21 16:25:58 83

原创 代码随想录之翻转二叉树

解法一:递归版,这里使用前序或者后序的递归都可以实现,如果使用中序的递归,需要注意结点的交换位置。解法二:使用层次遍历的方法来交换结点。

2023-04-19 18:57:38 155

原创 代码随想录之二叉树的层次遍历

思路:本题是二叉树的层次遍历,与图的广度优先遍历相同,使用队列来模拟存储的过程。主要的是本题返回的是一个二维的集合。

2023-04-19 14:47:06 98

原创 代码随想录之二叉树的遍历

思路:非递归使用的是栈来作为中介来存储值。先序遍历的属性是:根左右,所以我们在栈中先将根节点弹出,然后再右节点入栈,再左节点入栈,因为栈的入栈顺序是先进后出,所以我们应该先将右节点入栈。思路:中序遍历的代码与前序和后序的代码有所不同,中序遍历是需要我们先找到最左边的结点,当最右边的结点为空时再开始相集合中添加元素。思路:后序遍历我们只需要调整前序遍历的左右结点入栈顺序,最后再将得到的集合反转一下就行了。本题思路借鉴于代码随想录。

2023-04-18 21:59:12 97

原创 代码随想录之滑动窗口最大值

其实队列没有必要维护窗口里的所有元素,只需要维护有可能成为窗口里最大值的元素就可以了,同时保证队列里的元素数值是由大到小的,那么这个维护元素单调递减的队列就叫做单调队列,即单调递减或单调递增的队列。我们要创建的队列的每次窗口移动的时候,调用que.pop(滑动窗口中移除元素的数值),que.push(滑动窗口添加元素的数值),然后que.front()就返回我们要的最大值。pop(value):如果窗口移除的元素value等于单调队列的出口元素,那么队列弹出元素,否则不用任何操作。

2023-04-17 19:34:51 156

原创 代码随想录之逆波兰表达式求值

思路:本题使用栈的方法来完成。本题相当于后缀表达式求值,也是与匹配相关,所以也是使用栈的思路。1.注意先出栈的是作为符号后面的值,相当于除数,减数,第二次弹出的数作为被除数、被加数之类。2.String类型转化为Int类型的方法。

2023-04-17 15:46:51 79

原创 代码随想录之删除字符串中的所有相邻重复项

当题目当中有消去同类型或者什么什么匹配的时间,都可以考虑使用栈。

2023-04-17 14:41:50 92

原创 代码随想录之有效的括号

a与b的和,必须是c与d之和的相反数。这里也是,如果是左括号就将右括号入栈。最后循环,如果有右括号,就将stack中的弹出,如果不匹配就是false。这里的判断,如果是左符号,就将右符号入栈,然后再往后面判断,是这道题的主要思路,就同之前自己做的。解法:使用栈来完成对应。

2023-04-16 21:47:46 75

原创 代码随想录之用栈来实现队列

本题的思路较简单,主要一点就是要在每次出队的时间,将入栈里面的元素放到出栈里面去,要进行判断。

2023-04-16 20:53:16 70

原创 代码随想录之左旋转字符串

思路:在做完上一题旋转之后,我们再做字符串的旋转之类的题时就不会再感觉那么困难了。所以字符串的旋转都是部分旋转与整体旋转之间的联系关系。StringBuilder + 双指针。在原来数组的基础上操作 + 双指针。思路比较简单,不再赘述。

2023-04-16 18:53:21 107

原创 反转字符串中的单词(三种方法详细版)之代码随想录

“ ”的时间将这个值赋予满指针,难点是单词之间多个空格的情况,使用的是慢指针来添加空格,最后再创建一个慢指针长度的数组,将原数组中的值复制进去。1.该方法思路不难,主要是删除空格中最关键的一步比较难想出,如何使每个单词之间只有一个空格隔开,题目中使用的方法很巧妙。4.String.join()的意思是,将接受的数组或者集合,以参数一的形式分割开,再拼接成一个新的字符串。:本题是字符串的集大成之作,包含了去除字符串之间的空格,反转字符串,反转字符串中的单词。如果笔者陈述的方法有误,欢迎积极指正。

2023-04-16 16:10:57 923

原创 代码随想录之替换空格

思路:本题主要是StringBuffer与StringBuild类的学习使用。相当于动态的字符串。解法一:StringBuild的使用。

2023-04-15 21:00:26 73

原创 代码随想录之反转字符串||

思路:本题的难点是本题的题目较难理解,理解后可知其意思是,前2k个字母中的前k个反转,后k个保持不变。其中最后不足k个的全部反转,超过k个不足2k的部分保持不变。其中代码反转的部分与上一题反转字符串相同,反转部分主要就是看左右指针。与数组的长度之类的无关。所以左右指针只看k即可。1.for循环当中的跳转,理解题目后可知每次跳转多跳转2k个位置,所以说是i += 2*k;2.比较的最后一部分,要比较是否还有k个或者是不足k个,或者是超过k的不足2k的部分。4.再将字符数组转化为字符串的部分。

2023-04-15 20:18:13 83

原创 代码随想录之四树之和

思路:本题的解法与三数之和相同,不过本题中的target不是0,而是我们自己定义的target,所以在最外层的for循环当中要加上判断排序后第一位是否大于target的操作,其余剩下的操作与三数之后相同。

2023-04-15 17:42:25 59

原创 代码随想录之三数之和

a的降重的比较是 nums[i] == nums[i -1],为什么是 与i-1比较 而不是i+1比较,是因为i的下一个是left指针,二:本题另一个主要的点是,去重的思想,假设这三个数分别是 a ,b ,c,我们所求的是a+b+c=0;如过比较的是i+1,是比较i与left指针,比较的是数组中a与b的值不同,所以此处用的是i-1。b与c的判重是,排序之后的数组,如果大于0,就是right的值过大,所以是right–.思路:本题没有使用Hash表的解法,本题使用了数组+双指针的解法来完成。

2023-04-15 17:09:38 151

原创 代码随想录之四数相加||

思路:我们将四个数组两两一组,求出上面两个数组的和,将他们保存到map集合当中,和作为key,出现的次数来作为value来保存,再将下面的两个数组求和,每次求和后去map集合当中去看看有没有他们和的相反数,如果有,将出现的次数记录上,没有的话就继续向下执行。比如:nums1 与nums2 中有一个和是3,nums3与nums4中的和是-3,此时将nums3与nums4的和变为相反数,变为3,然后与集合中比较,获得3出现的次数。本题的解法是使用hash表的解法,个人认为本题较难思考。

2023-04-15 15:15:21 102

原创 代码随想录之两数之和

hash表解法,使用map来完成本题,将数组的value作为map集合当中的key,将数组的下标作为作为map集合的value,主要的目的是,map就是能在最快的时间内,去查找这个key是否在map集合当中。该解法不再解释,直接暴力就完事。

2023-04-15 11:17:37 111

原创 代码随想录之快乐数

使用hash表,利用Set集合,因为如果不是开心数的话,他会进入一个循环当中,这一轮数字会不断的重复出现,所以我们利用Set的不可重复性,来完成。思路是将一个数循环一百次,看看这100次当中是否能出现1,如果不能出现就不是快乐数。本题有一个难点是如何完成数的循环过程。该解法是笔者唯一能想出来的方法。

2023-04-15 10:24:09 84

原创 代码随想录之两个数组的交集

思路:因为比较两个数组中的相同元素,我们可以使用set来存储,去掉相同的元素之后,在利用这个集合来对第二个数组中的元素来进行对比。如果该数组中有与集合中相同的数时,将这个数组中的值添加到新的集合中。笔者认为,本题最重要的是集合转换为数组的方法。思路较简单,多练习即可。最后再将集合转变为数组。

2023-04-14 22:37:37 120

原创 代码随想录之有效字母异位词

使用数组方式来解决问题,使用数组的条件是,当hash的范围控时,如本题的hash大小为26,所以可以使用数组,同时数组中不用跟字母的ASCLL相对于,只要一个字母对应一个位置即可。该解法使用map来一一对应,主要思路是在力扣的解题方法中看到的。对字符串排序,然后比较是否相同,此处不再写。该题用的是hash表的解法。

2023-04-14 21:54:22 94

原创 代码随想录之环形链表||

双指针的方法:根据数学方法,我们可以知道,快指针从快慢指针相遇的结点出发,慢指针从头结点出发,每个指针每次向后移动一次,当两指针相遇的位置就是环的入口。具体的解法在代码随想录。使用hash表来完成。该解法借鉴的是力扣中的官方解法一。使用了哈希表的不可重复的特点,如果出现了相同的链表结点就说明出现了环。

2023-04-14 16:35:03 104

空空如也

空空如也

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

TA关注的人

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