自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法题解:283.移动零

使用双指针,前指针负责找零元素,后指针负责将其后的第一个非零元素拿来替换。要求将所有数组中的零元素移至末尾,非零元素不改变相对顺序。移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。显然时间复杂度为O(n)。,编写一个函数将所有。

2023-11-30 20:25:38 72

原创 算法题解:82. 删除排序链表中的重复元素 II

每遇到q的值等于q->next的值的情况,就记录下val值,然后操控内循环,将q移动到所有重复的val值之后的第一个位置。将新位置设为p->next(即从链中删掉中间的所有的值==val的结点。题目要求将重复过的数据全部删掉,那么可以定义两个指针p和q,其中p作为头,q从head开始。删除原始链表中所有重复数字的节点,只留下不同的数字。显然,时间复杂度为O(n)。给定一个已排序的链表的头。

2023-11-29 22:18:03 69

原创 算法题解:最长公共前缀

题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。"fl"""输入不存在公共前缀。

2023-11-23 23:12:37 73

原创 算法题解:路经总和

题目描述:给你二叉树的根节点root和一个表示目标和的整数targetSum。判断该树中是否存在的路径,这条路径上所有节点值相加等于目标和targetSum。如果存在,返回true;否则,返回false。是指没有子节点的节点。true等于目标和的根节点到叶节点路径如上图所示。false树中存在两条根节点到叶子节点的路径:(1 --> 2): 和为 3(1 --> 3): 和为 4不存在 sum = 5 的根节点到叶子节点的路径。false由于树是空的,所以不存在根节点到叶子节点的路径。

2023-11-22 20:32:45 54

原创 算法题解:训练计划

题目描述:给定一个头节点为head的链表用于记录一系列核心肌群训练项目编号,请查找并返回倒数第cnt个训练项目编号。8。

2023-11-14 17:46:02 37

原创 树的中序遍历

2.进入对于结点‘2’的遍历,对于根节点‘2’来说,应当先遍历访问附属于的其子结点‘4’的所有结构,再遍历访问该结点,最后遍历访问附属于其子结点‘5’的所有结构。7.进入对于结点‘3’的遍历,对于根节点‘3’来说,应当先遍历访问附属于的其子结点‘6’的所有结构,再遍历访问该结点,最后遍历访问附属于其子结点‘7’的所有结构。1.对于根节点‘1’来说,应当先遍历访问附属于的其子结点‘2’的所有结构,再遍历访问该结点,最后遍历访问附属于其子结点‘3’的所有结构。故遍历访问根节点‘1’。4.访问结点‘2’。

2023-11-13 21:43:36 23

原创 算法题解:多数元素

外层循环从unms[0]至nums[numSize-1]遍历,内层循环从nums[0]至nums[numSize-1]开始计数,当某个元素的数量大于numsSize/2时结束。解决办法:引入一个数组,长度为numsize/2+1,(用来记录nums中有多少不同的数字),在每次循环遍历前先判断,这个是否遍历过,如果出现过则不再重新进行循环。实际运行中存在一个问题:那就是如果多数的那个靠后出现,则难以结束遍历判断。你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。

2023-11-08 23:00:24 31

原创 算法题解:x的平方根

思路一:从1开始遍历,直到找到那个临界值i,使得i*i<=x且(i+1)*(i+1)>x,那么此时这个i就是x怕平方根的整数部分。通过二分夹逼法,设置三个参数:left、middle、right,动态调整范围,将i找到。8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。结果这样复杂度为O(x^0.5)的朴素算法才击败了个位数的用户。不允许使用任何内置指数函数和算符,例如。显然,时间复杂度为O(logx);由于返回类型是整数,结果只保留。

2023-11-07 20:43:40 24

原创 算法题解:704.二分查找

题目描述:给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。numstarget= 949 出现在nums中并且下标为 4numstarget= 2-12 不存在nums中因此返回 -1numsn[1, 10000]nums。

2023-10-28 22:58:44 53

原创 JAVA21 的某几个新特性:

记录类类名可以是record,以及可以在类名后定义字段,这些字段可以在其他用到此类的时候直接拿来用,而不是通过对象来获取。(如下图:因为test3类在定义时添加定义了x与y,所以在test3对象作为某函数的参数时,直接使用而不用通过对象引用。

2023-09-24 19:39:04 123 2

原创 算法题解:141.环形链表

题目描述:给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。pos。仅仅是为了标识链表的实际情况。如果链表中存在环,则返回true。否则,返回false。true链表中有一个环,其尾部连接到第二个节点。true链表中有一个环,其尾部连接到第一个节点。false链表中没有环。-1。

2023-09-23 17:37:31 33 1

原创 算法题解:121.买卖股票的最佳时机

题目描述:给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择买入这只股票,并选择在卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回0。5在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。0。

2023-09-23 17:03:33 32 1

原创 算法题解:206.反转链表。

思路:从头开始,用三个指针,用while循环,每次将连续三个结点中的中间节点next指向前一节点,然后将三个指针后移,为什么需要三个指针呢,这是因为在单链表中,除了头结点外的任何节点都需要其前驱节点来获取。如果某个结点的next指向了别处,那你将无法获取他原本指向的next。应用递归思想,从头结点开始,对于每个结点来说,假设后面的一系列结点都反转完成,那么只需将其next指向自己即可,对倒数第二个结点来说,后面仅有的一个结点可以看作本来就反转完成的,那么此时就是终止递归的时候。时间复杂度:显然为O(n)。

2023-09-16 22:00:58 45 1

原创 算法题:383.赎金信

思路:直观看来,要知道r数组能不能由m数组中的元素所构成,只需要遍历r数组一遍,每遇到一个元素,就在m数组中遍历寻找,找不到就return false,如果找到了,因为不能重复使用字母,就删去那个元素然后继续找下一个。那么就可以定义一个长度为26的字母数组,遍历一遍m数组,将r数组里的元素个数分别储存在数组里,再遍历一遍r数组,代表着r数组里的元素使用这些字母,每使用一个就将相应字母的个数减一。最终遍历一遍字母数组,数组里如果有减至0以下的字母说明m数组里的元素个数不足够构成r数组。

2023-09-14 16:55:02 39 1

原创 servlet中两种资源跳转的方式:

这是一种在服务器内部的资源跳转方式,过程为:当客户端(就是浏览器)把请求发送到服务器中以后,假设原本该由资源a来接收,那么此时资源a可以将请求转发(forword)给另一个资源b,然后由资源b来响应请求的结果。实现方式:只需在资源a中获取forword方法,为服务器提供资源b的路径即可。在这个过程中,本来由资源a从客户端获取的数据可以使用Reauest对象来传送共享给资源b。注意:进行请求转发时,是在服务器内的资源之间进行跳转,浏览器始终只发一次请求,所以可以看到浏览器的地址栏路径是不变的。

2023-09-14 15:41:23 356 1

原创 (朴素的)算法题解:20.有效的括号

给定一个只包括'('')''{''}''['']'的字符串s,判断字符串是否有效。

2023-09-10 16:24:41 35 1

原创 算法题解: 88. 合并两个有序数组

此题需要把nums1中各项与nums2中各项进行升序排列,最终返回nums1,因为nums1的前m位本来就按照升序排列,后n位为空,所以对两个数组从大向小进行比较和填充比较节省时间。1.设置两个游标,从nums1的第m个元素与nums2的第n个元素开始比较,值较大者从后向前填入nums1尾部,然后游标左移。3.特别地:如果nums1本就没有有效值,也就是m=0的情况下,为了避免nums1[-1]这种语句出现,直接使nums1=nums2即可。,5,6] ,其中斜体加粗标注的为 nums1 中的元素。

2023-09-07 17:40:31 50 2

原创 Java web学习日志(笔记)

如果连接的是本机mysql服务器,并且mysql服务默认端口是3306,则url可以简写为:jdbc:mysql:///数据库名称?4.3.1:执行时机不同:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。1.1:数据库设计就是根据业务系统的具体需求,结合我们所选用的DBMS,为这个业务系统构造出最优的存储模型。参数键值对1&参数键值对2...1.数据库的事务(Transaction)是一种机制,一个操作序列,包含了一组数据库操作命令。

2023-06-11 19:05:20 192

原创 Java基础学习日志(反射笔记)

泛型只是在编译阶段可以约束集合操作的数据类型,在编译成Class文件进入运行阶段的时候,其真实类型都是ArrayList了,泛型相当于被擦除了。反射是指对于任何一个class类,“在运行的时候”都可以获取类的字节码文件对象,然后解析这个类全部部分。1.反射是作用在运行时的技术,此时集合的泛型将不能产生约束了,此时是可以为集合存入其他任意类型的元素的。反射的第一步都是先得到编译后的Class类对象,然后就可以得到Class的全部成分。2.1:要先得到类对象,然后从类对象中获取类的成分对象。

2023-06-01 21:38:55 53

原创 Java:m*n数组暴力全排列(慎入!内存爆炸)

排列形式:每次在m*n数组的每一行取一个元素作为加数,将总共n^m个和值存入数组中。

2023-06-01 21:28:55 158

原创 Java web学习日志(笔记)

insert into 表名(列名1,列名2,……)values(值1,值2,……),(值1,值2,;insert into 表名 values(值1,值2,),(值1,值2,。alter table 表名 change 列名 新列名 新数据类型;alter table 表名 rename to 新表名……update 表名 set 列名1=值1,列名2=值2,insert into 表名(列名1,列名2,)values(值1,值2)insert into 表名 values(值1,值2,!

2023-05-27 20:52:05 42 1

原创 Java学习日志:线程操作一(笔记)

1.5:通过此种方法创建多线程,方法简单、方便,但是因为java只能进行单继承,是的线程类继承了。2.直接启动一个普通的main方法程序,其执行的就是一条单独的执行路径,该程序即单线程程序。2.6:通过此种方法创建多线程,使得线程任务类只是实现接口,可以继续继承类和实现接口,拓展性。3.6:利用此种方法实现,线程任务类只是实现接口,可以继承类和实现接口,扩展性强,还可以在。规范要求:通俗来讲,为了使这样的锁不会影响不同的账户取钱,即取不同的银行卡里的钱的线程不要。但是代码要高度面向对象!

2023-05-13 18:59:29 54

原创 Java学习日志(笔记)

字符缓冲输入流(BufferedReader)、字符缓冲输出流(BuffereWriter)。字节输入流(FileInputStream)、字节输出流(FileOutputStream)。字节缓冲输入流(BufferedInputStream)、字节缓冲输出流(BufferedOutputStream)。即输入/输出流,用来将文件或网络中的数据读到内存中(Input)、或将内存中的数据写入文件或网络中。1.1:可以将系统执行的信息选择性的记录到指定的位置(控制台、文件中、数据库中)。

2023-04-22 23:21:38 160

原创 Java学习日志。(笔记)

(实现类可以在实现接口的时候传入自己操作的数据类型,这样重写的方法都将是针对于该类型的操作。第一次创建集合并添加信息时,默认创建一个长度为10的数组,后每次空间不足时将长度右移一位,再加上原本的长度,即扩增1.5倍。概述:泛型是jdk5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。每个键都是唯一的,值为键的附属品,多个键对应的值可以相同,但是每个键都是不同的。2.2:根据元素的哈希值跟数组的长度取余计算出应存的位置。1.哈希值:依据对象的地址,按照一定规则算出的int类型的数值。

2023-04-16 21:57:07 45

原创 Java学习日记(笔记)

2.2:final修饰的变量是引用类型:那么变量储存的地址值不能发生改变,但是地址指向的对象内容是可以发生变化的。判断关键字左边的变量指向的对象的真实类型,是否是右边的类型或者是其子类类型,是则返回true,反之返回false。1.接口是用来被类实现的(implements)的,实现接口的类成为方法类。3.2:定义方法的时候,使用父类型作为参数,该方法可以接受父类的一切子类对象,体现出多态的扩展性与便利。使用static修饰的方法,成为静态成员方法,可以用类名访问,而在同一类中访问时还可以省略类名。

2023-04-07 20:58:58 106

原创 Java学习日志。

类中成员变量若使用static修饰,则该成员变量为静态成员变量,仅属于此类,而不属于此类的对象。5.类内定义的元素(变量)一般需要private修饰,使其不可直接在其他类中读。如果类的权限很小,比如为private型修饰的,那么类的权限设定会约束这个类。内权限设置大(更宽泛和更公开)的成员,比如,privat型的类会使其内成员。3.类的构造器分有参数和无参数两种,若不特殊定义,则默认存在无参数构造。类内可以读写变量的值。器,若定义了有参数构造器,则原来的无参数构造器消失,需重新自定义。

2023-03-31 21:09:10 57

原创 Java学习日志(笔记):

7.2Java中,二维数组的列数可以不一致,若如此定义:int a[][]= new int[][]{{1,2},{2,3,4},{1,2,3}};.../*每一轮循环都依次使用一个arr数组中的元素作为k的值,第一次循环k=arr[0],第二次循环k=arr[1],以此类推直至完成遍历数组中的各个元素。9.方法重载:Java中,同一个类中,对于同一方法名可以定义拥有多个形参列表的不同方法,这些方法的使用并不冲突,在调用时准确输入形参列表即可。5.Java中,+=、-=、+=运算符使用中包含强制类型转换。

2023-03-24 21:20:18 39

原创 算法日志:简单的二分查找。(2023.3.15)

算法学习日志:简单的二分查找。

2023-03-17 20:34:36 52

原创 JAVA:如何在Windows7系统中配置环境变量。

在Windows 7系统中配置环境变量的步骤如下:(1)在:“计算机”图表上单击右键,在弹出的快捷菜单中选择“属性”命令,在弹出的“属性”对话框左侧单击“高级系统设置”,将打开如图所示的“系统属性”对话框。

2023-03-10 20:42:01 4160 1

空空如也

空空如也

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

TA关注的人

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