- 博客(82)
- 收藏
- 关注
原创 MySQL表的增删改查(基础)CRUD
D: delete 删除数据一.新增(create):语法:insert into + 表名 {column,column...}values (value_list,value_list...).1.单行数据全列插入:value_list数量必须和定义表的列的数量及顺序一致EX:在学生表(id,name)里新增学生:阿三。insert into student values (1,'阿三');2.单行数据指定列插入:value_list数量必须和指定列数量及顺序一致。
2025-01-20 23:12:57
687
原创 MYSQL数据库基础
1.1: 创建数据库: create database if not exist + 数据库名称。5. decimal(M,D): 双精度,M指定长度,D表示小数点位数。drop database if exists 数据库名称。1.BIT(对应java中的Boolean),二进制数。2.tinyint(1字节,对应java中的byte)3. int (4字节,对应java中的integer)1. 显示当前数据库: show databases;4.bigint(8字节,对应Java中的long)
2025-01-15 18:11:51
348
原创 代码随想录算法训练营第4天| 24.两两交换链表中的节点 | 19 删除链表的倒数第N个节点 | 面试题02.07.链表相交 | 142.环形链表
1.我们可以利用快慢指针法,通过fast和slow ,fast一次走两步,slow一次走一步,如果两者在途中相遇,说明有环。此时在头节点定义一个节点tmp1 ,相遇节点处定义一个节点tmp2,两者同时走,相遇的地方即为环形入口。假设一圈就相遇,即n = 1, 带入后 x = z,即快慢指针相遇的地方就是环形入口,fast走过的路程:x+n (y+z) -----fast在环内走了n圈。3.fast和slow同时移动,直到fast为空,删除对应的slow节点。我们要求的是头到环形节点的距离:即x。
2024-11-17 23:14:09
905
原创 代码随想录算法训练营第三天| 203.移除链表元素 707.设计链表| 206.反转链表
建议: 本题最关键是要理解 虚拟头结点的使用技巧,这个对链表题目很重要。思路:1.直接使用原来的链表进行删除操作。 2.设置一个虚拟头结点在进行删除操作题目链接:. - 力扣(LeetCode)视频链接:手把手带你学会操作链表 | LeetCde:203.移除链表元素_哔哩哔哩_bilibili文章链接:手把手带你学会操作链表 | LeetCode:203.移除链表元素_哔哩哔哩_bilibili具体实现:定义一个cur = head 的结点,遍历链表,每次遍历时 cur.val 和
2024-10-28 23:42:17
1047
原创 堆的基本概念和插入删除方法的介绍
1.1优先级队列:优先级队列是一种特殊的队列数据结构,每个元素都有一个与之关联的优先级,与普通队列不同,优先级队列中的元素是按照优先级顺序进行处理的,而不是简单的插入。特点:1.优先级:每个元素都有一个优先级。优先级可以是数值或是其他标识,通常较高的数值表示更高的优先级2.出队顺序:在优先级队列中,优先级高的元素会被先处理。最大堆:每个节点的值大于或等于其子节点的值。根节点是最大值。最小堆:每个节点的值小于或等于其子节点的值。根节点是最小值。
2024-10-27 12:16:49
1050
原创 二叉树的基本概念及运用
若不等, 递归遍历左树查找对应的值,创建新树left来接受每次递归的树,递归结束若左树最终不为空,返回左树,右数同理。判断当前节点是否为空,不为空,判断当前节点的左子树和右子树是否同时为空,为空,将leafsize++;=null, 遍历D的左子树,返回0,再遍历右子树,也返回零,此时。判断当前节点是否为空,不为空,判断root.val是否 == val ,以图为例,按照 左子树--> 根节点---> 右子树 的方式进行递归。2.判断k是否为1,为1,即为根节点,return1即可。判断当前节点是否为空。
2024-10-26 01:57:24
707
1
原创 代码随想录算法训练营第二天| 209 长度最小的子数组 59 螺旋矩阵|| 58. 前缀和 1.开发商购买土地
差值=∣(sum−horizontalcut)−horizontalcut∣=∣sum−2×horizontalcut∣差值=∣(sum−horizontalcut)−horizontalcut∣=∣sum−2×horizontalcut∣。同时更新slow指针和sum的值(slow++,sum减去slow位置的元素)。2.通过快指针来遍历,用sum来记录当前子数组的和,用result来记录子数组的最小长度(初始化为MAX_VALUE)。如图,遍历到拐角处时,将拐角处让给新的边(坚持了左闭右开的原则)。
2024-10-21 23:49:12
669
原创 代码随想录算法训练营第一天 | 704二分查找 27.移除元素 977.有序数组的平方
通过while循环lefttarget,说明target在mid的左侧,right = mid-1;当A[i] * A[i] > A[j] * A[j] ,则将 result[k--] = A[i] * A[i];当 A[i] * A[i]
2024-10-20 17:45:13
987
原创 二叉树的基本概念及简单使用
概念:树是一种非线性的数据结构,它是由n个有限节点组成一个具有层次关系的集合。注:1.2. 除了根节点外,每个节点被分为n个互不相交的集合 T1, T2, T3, T4.... , 每个集合又是一课 与树类似的子树。每棵子树的根节点只有一个前驱,可以有0或多个后继。3.树是的。4。
2024-10-16 21:38:20
405
原创 面试题:通过队列实现栈
请你仅使用实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(pushtoppop和empty实现MyStackint pop()int top()truefalsesizeis empty栈的基本性质:后进先出队列的基本性质:先进先出。
2024-09-29 23:17:26
342
原创 设计循环队列-------------
如果直接rear+1,rear =8,不能重新进入循环,超出范围,这时我们就要借助一个公式:rear/front = (rear+1)%length(数组长度)。不为空的话,由于rear位置插入新值后都会往后再走一步,要获取队尾的元素,需要将创建一个整形index来接收 rear-1 ,再通过elem数组返回index位置的值。设计你的循环队列实现。在元素入队(插入)之前,先判断队列是否已满(布尔方法 isFull(判断条件:rear的下一个元素是否为front)),如果已经满,返回false.
2024-09-27 17:46:22
1222
原创 队列的基本概念以及模拟使用 (1.2 版本)
只允许在一端进行插入数据操作,在另一端进行删除数据操作的线性表,队列具有先进先出FIFO 入队列 :进行插入操作的一端称为队尾.在尾插之前,判断链表是否为空(第一次插入,有效元素为0)如果是第一次插入,则队头队尾均为node。判断队列是否为空,如果为空,返回-1,否则返回first队头的值。:当调用出栈方法时,你首先需要检查队列是否为空(即。出队列:进行删除操作的一端称为队头。今天的分享就到这里,喜欢的老铁来个三联吧!如果队列不为空,你将执行出栈操作。,这表示队列已经为空。
2024-09-26 22:47:12
393
原创 栈的基本概念和及具体实现 1.2版本
获取栈顶元素(数组末尾元素)并将其赋给整形val,usedSize--,同时返回val.进行数据插入和删除操作的一端称为栈 顶,另一端称为栈底。判断栈是否为空,为空,抛出异常,最后返回数组的最后一个元素。压栈:栈的插入操作叫做进栈/入栈/压栈,入数据在栈顶。具体方法: 压栈、出栈、获取栈顶的元素。出栈:栈的删除操作叫做出栈,出数据在栈顶。判断当前栈是否为空栈,如果为空,抛出异常。今天的分享就到这里,求三连!(3)获取栈顶元素方法的实现。1.用于存储数据的数组。(1) 压栈方法的实现。一种特殊的线性表,其。
2024-09-26 00:42:31
380
原创 双向链表的基本结构及功能实现
创建新节点cur储存head,while循环遍历链表,设置curN节点为cur的下一个节点,在cur清除当前节点元素后,cur = curN, cur进入下一个位置即curN,进入下一次循环后curN再次后移。1.创建一个保存头节点的cur节点,以及一个用于记录整形的变量len,while循环,每次len++ 并更新cur节点,最后返回len的值。ListNode cur = head,while循环(index不为0)遍历cur进入下一个节点,同时index自减1,(3). 头节点、尾节点的定义。
2024-09-25 01:19:53
1323
原创 环形链表 1.2 版本
1.设置两个节点,一个fast(快节点)和slow(慢节点),fast速度是slow的两倍,则那在相遇之前,fast走的距离为slow的2倍。设置一个slow和fast的相遇点,假设起始点head与入口点的距离为X,相遇点到入口点的距离为Y,圆环的长度为C。3.有环,则将slow指针置为head,和fast进行遍历直到相遇的点,即为入环的第一个节点。指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。,仅仅是为了标识链表的实际情况。如果链表无环,则返回。,则在该链表中没有环。
2024-09-24 22:45:03
135
原创 相交链表 1.2版本
给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。图示两个链表在节点c1开始相交题目数据整个链式结构中不存在环。,函数返回结果后,链表必须。如果A、B链表长度一样的,设置两个链表pl、ps(长的那一个和短的那一个),那我们让他们同时走,当ps与pl相遇(ps == pl)返回对应节点即可。
2024-09-24 15:56:24
439
原创 链表的回文结构 1.2
对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true什么是回文?:回文是指从前向后读和从后向前读都相同的字符串或数字。例如,“abcba”或数字“121”都是回文。
2024-09-24 13:27:45
557
原创 链表分割 1.2版本
现有一链表的头指针 ListNode*,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。我们可以假设x为36,则小于36都排在前边,>36排在后面。则大致可以分为两个区域来存储数据:区域一存储小于36,区域二存储大于36.同时,不能改变数据顺序,那这里就要用到尾插法。将数据逐个插进去。
2024-09-24 01:19:02
748
原创 java之单链表的基本概念及创建
链表是一种存储结构,数据元素的是通过链表中的次序实现的。组成结构: 由一系列节点组成,每个节点包含数据域和指向下一个节点的指针。
2024-09-22 01:31:24
978
原创 java之杨辉三角问题
除了第一行和第二行之外,其他行的元素都是首尾元素为1且该行的其他元素都是上一行相邻元素之和。(2):设置两个整形int val1 和 int val2,获取上一行相邻的两个元素( i。2.创建一个只有元素1的列表(作为第一行)并将其添加到数组ret中。创建当前行的列表,同时通过add函数添加该行的第一个元素1。5.添加当前行的最后一个元素1:curRow.add(1)(3):创建一个整形列表preRow用来接收上一行的值。(1):从第二个元素for循环到当前倒数第二个元素。(2):通过创建整形列表。
2024-09-20 22:42:14
544
原创 包装类的介绍以及简单认识泛型
将 基本类型(int char ) 封装成对象的类。实现一个类,类中包含一个数组成员,使得数组中可以存放任何类型的数据,也可以根据成员方法返回数组中某个下标的值.拆箱:与装箱相反,将 包装类对象 转化为 基本类型 :Integer转化为int。在定义泛型类时,有时需要对传入的类型变量做一定的约束,可以通过类型边界来约束。装箱:将 基本类型 转换位 包装类对象,如:将int转化为Integer。编程中一种允许在类、接口和方法中使用类型参数的特性,使得代码更具。在编译的过程当中,将所有的。
2024-09-16 12:51:25
465
原创 删除有序数组中的重复项
将 nums[ i] = nums[ j];这样新的元素就保留在了nums[i]中,最终即可得到。期间若 num[i]!=num[j] 说明出现了一个新的唯一元素,此时让 i自增1,设置一个索引i = 0,追踪去重后的元素,之后从 j = 1开始遍历数组,不需要考虑数组中超出新长度后面的元素。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。函数应该返回新的长度。的前两个元素被修改为。
2024-09-16 10:18:10
272
原创 轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数
我们可以创建一个长度为原数组长度2倍的数组,轮转k个相当于获取n-k位置后的n个数字.同时我们注意,当k>n时,此时需要轮转次数位 k%n(提前取余数)此时我们需要借助一个函数ArrayCopy(nums,0,arr,0,n)向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100]
2024-09-16 09:33:20
376
原创 消失的数字:
实际数组的总和我们可以创建一个变量Actualsum,直接利用for循环将数组与Actualsum相加即可。以例1来看,,我们想要期望的总和不是1+2+3吗?而当前数组长度为3,直接利用等差数列和公式。n*(n+1)/2 得到期望总和。(总有一个零占了少的数字的位置,所以可以利用这一点来求)如何计算期望的总和呢?我们不妨利用数组长度来解决,找到缺失的那个整数,需要我们用。最后返回两和之差即可.
2024-09-15 18:07:54
341
原创 Java 之数组的定义与使用
数组是一种用于存储多个相同类型数据的容器。数组可以存储基本数据类型(如。使用for-each循环(增强型for循环)2.1 访问和修改数组元素。
2024-09-13 18:05:21
302
原创 java之认识异常
throws关键字:处在方法声明时参数列表之后,当方法中抛出编译时异常,用户不想处理该异常,此时就可以借助throws。4. 调用声明抛出异常的方法时,调用者必须对该异常进行处理,或者继续使用throws。如果捕获了,由于捕获时类型不对,那就没有捕获到,这里的代码就不会被执行。定义:在程序执行期间出现的异常,称为运行时异常,也叫非检查类型异常。定义:程序在编译期间发生的异常,是编译器要求必须处理的异常。当异常被捕获到时,异常就被处理了,这里的后序代码一定会执行。对异常就可以正常处理,处理完成后,跳出。
2024-09-13 17:25:04
1395
原创 String之 字符串截取函数 substring
String substring(int beginIndex, int endIndex):截取部分内容。String substring(int beginIndex) :从指定索引截取到结尾。substring:从一个完整的字符串之中截取出部分内容。
2024-09-12 00:45:45
239
原创 Split函数
String[] split(String regex, int limit) :将字符串以指定的格式,拆分为limit。String[] split(String regex) :将字符串全部拆分.可以将一个完整的字符串按照指定的分隔符划分为若干个子字符串。切割小数点,或\ ,需要额外加上 \\符号。
2024-09-12 00:42:19
365
原创 java之认识String类
int lastIndexOf(char/String ch, int fromIndex) :从fromIndex。int indexOf(char ch, int fromIndex) :从fromIndex。用法:1.先按照字典次序大小比较,如果出现不等的字符,直接返回这两个字符的大小差值。int indexOf(char/String ch):返回ch。第一次出现的位置,没有返 回-1。两个同类型之间的数据比较。第一次出现的位置,没有返回。第一次出现的位置,没有返回。第一次出现的位置,没有返回。
2024-09-12 00:34:22
265
原创 java之图书管理系统
同理,创建一个currentSize方法,调用getusedsize得到现有书籍数量,for循环书架上的每一本书籍,其名字与你借的书比较,若相同且isBorrowed方法为true(已被借出),否则将setborrowed设为true,借阅成功。同时,这些方法都要有一个共同的”工作“接口,用于显示各项的具体操作实现。跟上述同理,fori循环书架上的每一本书与你要删除的书名字比较,若相等,将i的值赋给pos,break退出。for循环,每次循环书架上的书,并构建一个新的book变量,用于保存你在书架上的书,
2024-09-09 23:50:19
574
原创 抽象类与接口
在bark例子中,父类的bark方法似乎并没有做出什么实际的工作,bark各种功能的实现都是由Animal的各种子类来实现的。8.如果一个类不想实现接口中的方法,那么此时的类便可定义为抽象类,但如果这个抽象类被继承,那么就要实现所有没有被实现的方法。但子类Dog和Cat都是具体的动物,可以实现各自的功能。现实生活中接口的例子有很多,如笔记本电脑上的usb接口,电源插座等。4.如果接口中的方法可以被static修饰,也可以有具体的实现。3.接口中的方法被default修饰,则可以有具体的实现。
2024-09-04 10:27:52
637
原创 继承与多态2
这里的a.eat(),当a引用Dog对象时,调用Dog中的eat方法。引用Cat对象时,调用Cat中的eat方法。,即在编译时,不能确定方法的行为,需要等到程序运行时,才能够确定具体调用那个类的方法。,即在编译时,根据用户所传递实参类型就确定了具体调用那个方法。注:这里重写了Animal的eat方法(override为重写).将一个子类对象经过向上转型之后当成父类方法使用。2.2 多态的概念:通俗来说,就是多种形态,(将子类给父类,从小范围到大范围的转变)而方法重写是子类与父类的一种多态性表现。
2024-08-26 21:41:59
339
原创 java之继承与多态 1
1.继承的概念:它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的重用和扩展。1.4 子类的构造方法::子类对象构造时,需要先调用基类构造方法,然后执行子类的构造方法。如果访问的成员变量子类中无,则访问父类继承下来的,如果父类也没有定义,则编译报错。在子类方法中或者通过子类对象访问方法时,则优先访问自己的,自己没有时。2.成员方法相同时:优先访问子类,若子类中没有,否则访问父类。如果访问的成员变量与父类中成员变量同名,则优先访问自己的。如果访问的成员变量子类中有,优先访问自己的成员变量。
2024-08-26 20:57:48
662
原创 java之类和对象2
public:相同/不同包中的子类/非子类都可使用。,比如:一 个包中的类不想被其他包中的类使用。静态方法中不能调用任何非静态方法,因为非静态方法有。protected:在不同包中的非子类不可使用。private:只能在相一个包的同一类中使用。导入包中的类:可以使用import语句导入包。静态成员一般是通过 静态方法来访问的。不能在静态方法中访问任何非静态成员变量。static定义的代码块称为静态代码块。default:什么都不写时的属性。不属于某个具体的对象,是类方法。方式调用,更推荐使用后者。
2024-08-25 21:19:22
322
原创 java之类和对象的介绍
西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空。的类型:对应类类型引用,即哪个对象调用就是哪个对象的引用类型。而面向对象则没有以上复杂的过程,将衣服倒入洗衣机即可。一样的东西,用来对一个实体进行描述,限定了类有哪些成员。例如一个洗衣机的型号、大小、功能之类。用户根据自己的需求提供不同参数的构造方法。只能引用当前对象,不能再引用其他对象。相当于人的出生,每个人只能出生一次。关键字,配合类名来实例化对象。一个类可以实例化出多个对象,是一个特殊的成员方法,
2024-08-21 23:36:38
501
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人