- 博客(69)
- 收藏
- 关注
原创 二叉树相关问题解决思路
2.在使用递归解决二叉树问题时,return后面的值就代表上一级对该return级操作的节点,比如:方法名为xunhuan(root),当递归为xunhuan(root.left),在root.left层级的return值就是root的做左节点。对某个节点操作时,一定要注意是否还需要操作该节点,如果还需要使用,就创建一个变量接收该节点,然后操作变量。3.在二叉从上向下寻找时,注意每个if之后要有return,使根节点始终与子节点相连,即使后面的子节点发生变化,也能与根节点连接上。
2024-01-21 16:41:31
377
原创 由于异步原因导致在主线中不能直接使用接口返回的数据的解决方式。(vue+TS+Axios)
/根据作品名、大类型、小类型查询第一行:的作用是引入二次封装后的axios,若没有二次封装,那地址就是http。第三行:定义了参数的类型第九行:中的参数也可以使用接口名dataFindBig,在这里我没使用。但是在第十行,尖括号中第二个参数是参数类型,更详细的用法可以自己再详细了解。注意了:我在这里用的是箭头函数,箭头之后没有使用大括号,表示第十行是return之后的内容,如果加了大括号就需要在request之前加上return。//引入相应的东西第二行固定格式,直接引入;
2023-12-31 20:02:12
436
1
原创 二叉树先序、中序、后序遍历之间的关系以及构造函数和普通函数的区别-12.16(day19)
在后序遍历中是最后一个;在这三种遍历中,左子树的所有节点都是在整个遍历的左侧,右子树的所有节点都在整个遍历的右侧。因此根据先序和中序或者后序和中序即可得到一个二叉树,但是通过先序和后序是不能得到二叉树的,因为不能得到左右子树的节点数量。简单总结一下就是:构造函数需要使用new关键字调用,使用大驼峰命名法,没有返回值,this指向新对象;普通函数不需要使用关键字,使用小驼峰命名法,可以有返回值,this指向调用的对象。构造函数: 通常不需要显式返回值,因为构造函数的目的是初始化对象,this 指向新对象。
2023-12-16 11:32:37
137
原创 深拷贝与浅拷贝以及实参为方法的传递-12.13(day17)
当旧数组改变的时候,新数组中的内容不会发生改变。深拷贝是在新数组中创建相应数量的新地址,将旧数组中的值分别加入到新数组中。因此,访问新数组中的值是访问新地址,不是旧数组的地址,所以指向的是新数组中的值,不受旧数组影响。例如:arr1.push(...arr2)、for(let i in arr2){arr1.push(arr2[i])}等等这些将旧数组遍历一遍再加入到新数组中的做法就是深拷贝。因为数组是引用数据类型,浅拷贝是将旧数组的地址复制到新数组中,因此,访问新数组中的元素指向的是旧数组中的值。
2023-12-13 10:25:32
75
原创 递归传参的几个注意点-12.12(day16)
首先大家要了解a++和++a有什么区别:无论是a++还是++a,它们都相当于是a+=1,只不过++a是先计算+1,a++是后计算+1.举个例子。可以看到,传入a++和++b时候的区别:传入a++时,函数中还是a原来的数据,直到下一次使用a的值才会改变;传入++a时,函数中a的数据会及时改变。在写关于二叉树的算法时,递归是我们绝对会用到的方法,但是昨天写了一道相关算法之后,看了看答案才发现递归过程中参数的写法也是有要求的。至于传入a+=1,它的效果和++a是相同的:函数中的值随之改变,函数外的值也会改变。
2023-12-12 16:26:05
83
原创 力扣110-平衡二叉树解析-12.8(day15)
该方法用的是后序遍历的递归,当返回-1时,表示以该节点为根节点的二叉树已经不是平衡二叉树了,即整个二叉树都不是平衡二叉树了,层层向上返回。根据题意首先想到的是后序遍历(顺序为:左右中)。得到左子树高度和右子树高度之后再到根节点进行判断。当返回到真正的根节点后如果为-1,则表明整个二叉树都不是平衡二叉树。平衡二叉树概念:以每个节点为根节点时的左右子树高度差不大于1。只有使用后序遍历才能让根节点得到左右节点的高度用来比较。
2023-12-09 08:39:25
57
原创 层序遍历的应用-12.7(day14)
因此,在求二叉树或N叉树的最大或最小深度以及节点个数时,使用到的方法一模一样,只要在操作子元素时修改一下即可。最大/小深度的定义:从根节点到距离最远的叶子节点之间的节点个数或者边的条数,具体应以题目为主。最小深度思路:最小深度就是从根节点到距离最近的叶子节点之间的边的条数或者节点个数,只需在上述代码判断每个子节点是否有子节点,没有的话该层就是最小深度。节点个数思路:这个没什么,只需使用任意一种遍历方式,得到所有节点的数量即可。层序遍历在今天的应用有求二叉树或N叉树的最大或最小深度以及节点个数。
2023-12-08 09:19:43
44
原创 二叉树层序遍历-12.7(day13)
记录队列长度size,队列长度就是每层拥有的节点数(没理解的话请继续向下看),用来辅助我们进行循环;当我们每取出一个节点,首先将该节点的值加入到临时数组中,然后判断该节点的左右节点是否存在,存在的话就再加入到队列中,因此,当上一层的节点遍历结束后,队列中剩余的所有元素都是本层节点,队列长度size就是本层所有结点的数量。当size为0时,临时数组中的所有元素就是所有本层节点的值。层序遍历应用的是图中的广度优先遍历,不过效果是类似的:从树的根节点开始,从上到下、从左到右依次遍历每层的元素。
2023-12-07 08:35:23
42
原创 二叉树先中后序遍历-12.4(day12)
先、中、后可以理解为前、中、后,代表了父节点在第几个开始遍历,分别对应第一个、第二个、第三个;先序遍历是从根节点开始的,中序和后续遍历是从左子树的叶子节点的最左侧开始的;从左子树最后一层的最左侧节点开始遍历,当遍历到根节点后在开始遍历右子树。先访问叶子节点,从左子树到右子树,最后到根节点。从根节点开始,逐级向下遍历。
2023-12-04 20:32:31
57
原创 使用elementUI中表单组件时检验是否为空的功能
使用表单收集数据时,点击提交后检验必填项是否为空是一个很重要的功能,当使用了elementUI后这个问题就变的很简单了。对于简单的事情也是需要学习一遍才能掌握运用,在这里我将会用直白明了的话来为大家讲解"使用elementUI中表单组件时检验是否为空的功能"的详细运用。"required"是HTML表单元素中的一个属性,也可以在一些前端框架(如Vue.js)的表单验证规则中使用。"trigger"是表单验证规则中的一个属性,用于指定触发验证的事件。"message"属性用于指定在验证失败时显示的错误消息。
2023-12-01 16:11:05
1231
1
原创 项目学习末篇+git使用感悟
从项目提出开始到现在,已经一个月多一点了,真正开始写是从上周六中午开始的,因为有模板的缘故,所以写的可能快了一点。
2023-11-26 17:04:00
73
1
原创 项目学习初篇
会议结束后学长让我们下去后先收集一下与项目有关的信息,当天晚上,我就向几个高中关系很好的朋友询问,但是得到的结果仍然与需求不太符合,我又看了学长发的一个学校的这个系统,发现人家的这个系统已经做的很完善了。最后的感悟就是当需求和原型图明确后,在后端写完所有接口之前,前端的工作就是将原型图实现即可,其余的后端没结束的时候前端不能说一点也不能写,只是非常困难,后端一旦开始写,就要关掉服务器,这就导致了前端想要写的话只能按照自己的思维空写,没有办法测试真实效果,对于现在的我来说,这样还是非常困难的。
2023-11-19 15:37:29
59
原创 安装pnpm后cmd可用,但是vscode不可用的解决方法。
说起来其实这个方法也很简单,就是配置的node_modules与vscode打开文件的node_modules不在同一个盘符中,我这次也就是因为配置的node_modules在C盘,而我的项目在D盘所导致的。因为当时我有事不在旁边,所以提供不了具体方法,只能文字表达一下,知道怎么操作的大佬可以在评论区帮助帮助完善以下ヾ(≧▽≦*)o。:在遇到该问题时,我也曾尝试过寻找各种办法,大概解决了两个小时左右,在学长学姐的帮助下才最终解决。解决一个问题的方法有很多,我提供的也只是一种,希望可以给大家带来帮助。
2023-11-14 19:32:04
1502
原创 栈与列表终章-11.10(day11)
最后两道算法是困难级别的,果然对于一刷的我来说过于困难了,只能勉强理解思路,并没有做,现在就算做出来也是几乎就是按照答案的印象来写的。先放放,二刷或三刷的时候再好好看看。
2023-11-10 19:05:42
59
1
原创 逆波兰表达式与普通表达式转换的口语化讲解(超容易理解)-11.8(day10)
在栈与队列这一章节,逆波兰表达式一定是非常重要的一个知识点,在书中对逆波兰表达式的介绍比较冗余,而且书面化的语言生涩难懂,自己去看的话不但需要花费大量时间,而且不一定能够理解。在这我给大家分享一下我自己的一个理解方法,相对于我来说是比较容易理解的,只是在书写的时候可能会稍微有些麻烦。
2023-11-09 08:29:18
86
1
原创 初识栈与队列-11.7(day09)
这句话在我当时看到这一章时也是最容易理解的一句话,但是今天在写算法的过程中却忘得一干二净,直到看了解析才想起来还有这回事。最后就是今天写的两道算法刚好相反,一道是将栈转成队列,另一道是将队列转成栈。栈里面的元素是先进后出,队列里的元素是先进先出。必须从数组末尾拿出元素的限制就变成了栈。须从数组前端拿出元素的限制就变成了队列。栈与队列在必须的时候是可以相互转换的。然后就是在写这些算法时才发现。栈与队列不是什么高大上的东西。数组加上一定的限制完成。
2023-11-07 21:28:02
113
原创 算法中有关字符串的方法和注意点-11.5(day07)
s.split(‘m’),将字符串s根据字符m拆分成数组,注意:对于字符m来说,空字符和空格不一样:一个字符串中,两个相邻紧挨着的字符中间是空字符,两个字符之间有一个空格才是空格。空格的ASCLL码为32,空字符没有ASCLL码。将数组转回字符串,且每个元素中间加上字符m,注意:在这个里面也要注意空字符和空格。reverse();
2023-11-05 18:18:38
58
1
原创 今日算法心得-11.4(day06)
4.Map表.has(key),查询Map表中是否存在该kay的value值,返回布尔类型值。:在if判断中使用get或者has的注意点:使用has时,只要有key,即使value为undefined也是true。1.new Set(),可以直接创建一个空的set表,Set后的括号中带上数组的话就是将数组转换成set表。2.Map表.set(key,value),添加元素,不传入value时value默认为undefined。3.Map表.get(key),得到键为key的元素,返回相应的value值。
2023-11-03 14:28:40
52
原创 力扣24、19、面试题02.07知识点或思路-11.1(day04)
先让第一个指针指向头节点,使用循环指向第n个节点,此时第二个节点指向头节点,两个指针同时向后移动直到第一个节点的下一个节点为null的时候,第二个节点的下一个节点就是需要删除的节点,只要让节点2.next=节点2.next.next即可。2.当虚拟头节点指向节点2时,节点1已经获取不到了,因此在此之前需要用一个变量保存一下,当节点2指向节点1时节点3同理。1. 判断时要先判断cur.next再判断cur.next.next,否则可能空指针异常。4.返回值要返回虚拟头节点的下一个。
2023-11-01 15:35:05
71
1
原创 链表删除指定节点需要的注意点-10.31(day03)
删除指定元素分为两种方法:第一是创建虚拟头节点法和直接操作原链表法。不管是哪种方法我们都要创建一个指针来帮助我们删除,因为所有操作都在原链表中进行会导致没法输出正确的链表。虽然前段时间学过链表,但是今天是第一次做题,略微生疏,先写到这吧。在操作过程中还要注意对空指针的判断,不要出现空指针异常的错误。
2023-10-31 14:15:35
123
1
原创 while循环规则感悟以及js中二维数组的创建-10.30(day02)
map(() => new Array(n).fill(0)):使用map函数在数组res的每个位置创建一个长度为n的一维数组,并且用0填充。初始化语句=>判断条件=>循环体=>判断条件=>循环体....直到判断条件为false。第五种:(没有出现同一变量出现在两个while中,因此结果也是正常的)第三种:(没有出现同一变量出现在两个while中,因此结果是正常的)最终得到:res=[[0,0,0],[0,0,0],[0,0,0]]new Array(n):创建一个长度为n的一维数组;
2023-10-30 15:21:46
105
1
原创 IDEA中运行main方法时出现“错误:找不到或无法加载主类”的解决方法
该问题是很多人都碰到过的,而我昨天恰巧也碰到了一次,但是用了网上查的各种方法,比如清理缓存、重新加载等方法都不管用,但是阴差阳错之间,我把我的web项目换到了一个可以使用的文件夹中,这个时候问题就解决了。大家在碰到这种问题时,不妨先试试其他人提供的方法,最后如果还不行就可以按照这种方法尝试一下,如果又看不懂的,欢迎大家留言询问。
2023-08-13 08:19:54
675
原创 JBDC增删改基本步骤
SQL:inser into 需要操作架构名 (brand_name,company_name,ordered,description,status) values(?增、删、改:int count = pstmt.executeUpdate();需要查询的列类型 列名 = rs.get列类型(“列名”);增、删、改:System.out.println(count>0);brand.set需要查询的列类型()列名;删:int id = 需要删除的id;删:pstmt.setInt(1,id);
2023-07-07 16:35:21
79
1
原创 洛谷P2433【深基1-2】小学数学 N 合一(java,含详细步骤)
case 1:");break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:break;case 7:break;case 8:break;case 9:break;case 10:break;case 11:break;case 12:break;case 13:break;
2023-07-04 17:18:57
456
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅