自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL表的增删改查

在进行表操作之前,一定要use选中数据库注释:在SQL中可以使用--空格+描述 来表示注释说明CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母。

2024-05-03 00:30:16 827

原创 MySQL数据库基础知识(数据库/表的基础操作 + 基本类型)

给程序猿使用的专业软件,不会像游戏设置界面那样的图形化界面进行编辑"配置项",而是直接用一个文件的方式进行呈现,这样的文件就是配置文件。如果系统没有 db_test 的数据库,则创建一个使用utf8mb4字符集的 db_test 数据库,如果有则不创建。如果系统没有 db_test2 的数据库,则创建一个名叫 db_test2 的数据库,如果有则不创建。创建数据库时还可以指定"校验规则"(可以认为是字符串比较时对应的规则),一般不用修改,使用默认即可。里面有这样的配置项描述的就是数据库存储的数据是在哪里。

2024-04-21 20:28:05 1004

原创 BFS算法--宽度优先搜索(广度优先搜索)

文章目录树N叉树的层序遍历二叉树的锯齿形层序遍历二叉树最大宽度在每个树行中找最大值FloodFill算法图像渲染岛屿数量岛屿的最大面积被围绕的区域最短路径问题迷宫中离入口最近的出口最小基因变化单词接龙为高尔夫比赛砍树多源BFS矩阵飞地的数量地图中的最高点地图分析拓扑排序(核心与多源BFS一样)课程表课程表II火星词典树N叉树的层序遍历class Solution { public List<List<Integer>> levelOrder(Node root) {

2024-04-09 12:08:14 295

原创 字符串相关算法

整体思路就是模拟列竖式计算两个数相乘的过程。但是为了书写代码的方便性,我们选择优化的版本,就是在计算两数相乘的时候,先不考虑进位,等到所有结果计算完毕之后,再去考虑进位。

2024-04-02 12:07:54 393

原创 分治-算法

与逆序对的问题不同的是,逆序对我们可以⼀边合并⼀边计算,但是这道题要求的是左边元素大于右边元素的两倍,如果我们直接合并的话,是⽆法快速计算出翻转对的数量的。因此,我们可以利⽤归并排序的过程,先求出左数组中逆序对的数量,再求出右数组中逆序对的数量,最后求出⼀个选择左边,另⼀个选择右边的逆序对的数量,三者相加即可。这道题的解法与 求数组中的逆序对 的解法是类似的,但是这道题要求的不是求总的个数,而是要返回⼀个数组,记录每⼀个元素的右边有多少个元素比自己小。在归并排序合并的过程中,我们得到的是两个有序的数组。

2024-03-28 14:05:20 928

原创 数据库MySQL

存储数据用文件就可以了,为什么还要数据库?文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便内存与外存外存是一个统称,包括硬盘、U盘、光盘…CPU(中央处理器),进行各种逻辑判断和算术运算,是通用的,也可以计算图形图像GPU(显卡),专用计算芯片,专门用来计算图形图像,所以在某些方面速度比GPU快很多平时的内存都是给CPU使用的,为了不冲突,一般会在显卡上单独焊上一些内存单元,专门给显卡使用,这就是显存。

2024-03-24 21:45:27 637 4

原创 模拟-算法

定义的哈希表hash记录蛙叫次数,除了’k’其他字符会被下一个字符消掉,'k’只有在新增’c’的时候消掉,最后留下多少’k’就是几只蛙。第一行、第二行第⼀个数取值为行数,第二个数夹在等差数列中间, 就是第零行的等差数列第二个数减去行数。不难发现,第零行和最后一行的数据是以 2numRows - 2 为公差递增的等差数列。所谓「外观数列」,其实只是依次统计字符串中连续且相同的字符的个数。依照题意,依次模拟即。ii. 如果差值小于中毒时间,那么上次的中毒只能持续两者的差值。以此规律,我们可以写出迭代算法。

2024-03-23 10:28:18 724 2

原创 位运算算法

由于整个数组中,需要找的元素只出现了「⼀次」,其余的数都出现了「三次」,因此我们可以根据所有数的「某⼀个比特位」的总和 %3 的结果,快速定位到 ret 那位「比特位」的值是0 还是 1。利用「位图」的思想,每⼀个「比特位」代表⼀个字符,⼀个 int 类型的变量有 32 位足够表示所有的小写字⺟。如果我们把数组中的数,以及 [0, n] 中的数全部「异或」在⼀起,那么根据「异或」运算的两个相同的数异或的结果一定为0,最终的异或结果就是缺失的数。给一个数n,确定它的二进制表示中的第x位是0还是1。

2024-03-21 15:39:18 391

原创 前缀和算法

前缀和可以快速求出数组中某个连续区间的和为了处理边界情况,下标从1开始dp[i]表示原数组[ 1 , i ]区间内所有元素之和dp[i]=dp[i-1]+原数组[i]

2024-03-20 18:19:13 793

原创 二分查找算法

大家⼀定不要觉得背下模板就能解决所有二分问题。二分问题最重要的就是要分析题意,然后确定要搜索的区间,根据分析来写出二分查找算法的代码。要分析题意,确定搜索区间,不要死记模板,不要看左闭右开什么乱七⼋糟的题解要分析题意,确定搜索区间,不要死记模板,不要看左闭右开什么乱七⼋糟的题解要分析题意,确定搜索区间,不要死记模板,不要看左闭右开什么乱七⼋糟的题解重要的事情说三遍。

2024-03-18 12:23:45 741

原创 滑动窗口算法

因为字符串 p 的异位词的长度⼀定与字符串 p 的长度相同,所以我们可以在字符串 s 中构造⼀个长度与字符串 p 相同的滑动窗口,并在滑动中维护窗口中字母的数量。可以用两个大小为 26 的数组来模拟哈希表(全是小写字母),⼀个来保存 s 中的子串每个字符出现的个数,另⼀个来保存 p 中每⼀个字符出现的个数。既然是连续区间,可以考虑使用「滑动窗口」来解决问题。题目要求的是数组「左端+右端」两段连续的、和为 x 的最短数组,我们可以转化成求数组内⼀段连续的、和为 sum(nums) - x 的最长数组。

2024-03-14 15:09:30 718

原创 双指针算法

而「快慢指针」有⼀个特性,就是在⼀个圆圈(循环)中,快指针总是会追上慢指针,也就是说速度相差一个元素时他们总会相遇在同⼀个位置。设两个指针 left , right 分别指向容器的左右端点,容器的左边界为 height[left] ,右边界为 height[right]。快慢指针的实现方式有很多种,最常用的⼀种就是:在⼀次循环中,每次让慢的指针向后移动⼀位,而快的指针往后移动两位,实现⼀快⼀慢。由于上述两种情况只会出现⼀种,因此,只要我们能确定死循环是「情况⼀」,还是「情况⼆」,就能得到结果。

2024-03-12 11:41:50 824

原创 哈希表与HashMap

虽然哈希表一直在和冲突做斗争,但在实际使用过程中,我们认为哈希表的冲突率是不高的,冲突个数是可控的,也就是每个桶中的链表的长度是一个常数,所以,通常意义下,我们认为哈希表的插入/删除/查找时间复杂度是O(1)。开散列法又叫链地址法(开链法),首先对数据集合用散列函数计算散列地址,具有相同地址的数据归于同一子集合,每一个子集合称为一个桶,桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。那如何寻找下一个空位置呢?进行同样的计算,求得的函数值为元素的存储位置,进行元素比较,若相等,则搜索成功。

2024-03-06 14:08:32 628 2

原创 七大排序算法

快速排序整体的综合性能和使用场景都是比较好的,所以才叫快速排序时间复杂度:O(N*logN)空间复杂度:O(logN)稳定性:不稳定。

2024-03-02 20:48:10 956

原创 优先级队列(堆)

查看向上调整的源码知PriorityQueue是通过comparator或comparable来决定元素存放顺序的如果实现了comparator就用comparator,不然就看comparablecomparablekey是child;e是parentkey.compareTo((E) e) < 0,就不执行break,而执行交换} }} }@Override对age进行比较来建堆comparatorx是child;

2024-02-24 10:41:59 1013

原创 二叉树及其练习题

文章目录树概念及结构树的概念树的相关概念树的表示形式树的应用二叉树概念及结构概念两种特殊的二叉树二叉树的性质二叉树的存储二叉树的基本操作二叉树的遍历前中后序遍历递归实现二叉树的基本操作二叉树相关oj题树概念及结构树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2

2024-02-21 00:22:45 752

原创 Java的集合框架和泛型

Java 集合框架,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces和其实现类 classes。其主要表现为将多个元素 element 置于一个单元中,用于对这些元素进行快速、便捷的存储store、检索retrieve、管理manipulate,即平时我们俗称的增删查改CRUD。数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。

2024-02-16 22:21:30 711

原创 时间和空间复杂度

算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。

2024-02-14 13:34:40 766

原创 环形链表的约瑟夫问题

按照牛客网题目要求编号从1开始。

2023-12-25 23:26:39 869

原创 KMP算法

KMP 和 BF 不一样的地方在,主串的的下标 i 并不会回退,只需要让子串的下标 j 回退就够了(通过一个next数组找到回退的位置)

2023-12-22 22:28:19 890

原创 Clonable 接口和深拷贝

Object 类中存在一个 clone 方法, 调用这个方法可以创建一个对象的 “拷贝”.但还是会报错要想合法调用 clone 方法, 必须先实现 Clonable 接口, 否则就会抛出 CloneNotSupportedException 异常,而它是空的,没有需要重写的方法如果一个类实现了这个空接口/标记接口,那么证明当前类是可以被克隆的。

2023-12-20 19:32:47 340

原创 Java的异常

Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我们实际情况的异常结构我们可以基于已有的异常类进行扩展(继承), 创建和我们业务相关的异常类.自定义异常类,继承自Exception 或者 RunTimeException实现一个带有String类型参数的构造方法,参数含义:出现异常的原因仿照NullPointerException创建自定义异常类(含两个构造方法)if(!

2023-12-19 20:45:26 909

原创 Java的String类常用方法 |StringBuilder和StringBuffer

由于String的不可更改特性,为了方便字符串的修改,Java中又提供StringBuilder和StringBuffer类。这两个类大部分功能是相同的,这里介绍 StringBuilder常用的一些方法方法说明在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、double、float、int、long、Object、String、StringBuff的变量获取index位置的字符获取字符串的长度获取底层保存字符串空间总的大小扩容。

2023-12-13 22:40:40 982

原创 java的多态

在子类构造方法中,并没有写任何关于父类构造的代码,但是在构造子类对象时,先执行父类的构造方法,然后执行子类的构造方法,因为:子类对象中成员是有两部分组成的,父类继承下来的以及子类新增加的部分。父子父子肯定是先有父再有子,所以在构造子类对象时候 ,先要调用父类的构造方法,将从父类继承下来的成员构造完整,然后再调用子类自己的构造方法,将子类自己新增加的成员初始化完整。总结:成员方法没有同名时,在子类方法中或者通过子类对象访问方法时,优先访问自己的,自己没有时再到父类中找,如果父类中也没有则报错。

2023-12-10 14:05:18 821

原创 栈和队列

例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。

2023-12-09 16:56:43 866

原创 顺序表和链表

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。快慢指针,即慢指针一次走一步,快指针一次走两步,两个指针从链表起始位置开始运行,如果链表带环则一定会在环中相遇,否则快指针走到链表的末尾。给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在大于或等于 x 的节点之前。一次,之间的距离就缩小一步,不会出现每次刚好是套圈的情况,因此:在慢指针走到一圈之前,

2023-12-05 20:45:36 952

原创 Java的内部类

只能在方法里面实例化对象.不能被public、static等访问限定符修饰局部内部类只能在所定义的方法体内部使用编译器也有自己独立的字节码文件,命名格式:外部类名字$数字内部类名字.class。

2023-11-25 23:59:51 1056

原创 Python:字符串格式化

(2)带数字编号,可调换顺序,即“{0}”、“{1}”(0是第一个参数,1是第二个参数)格式控制标记包括:<填充><对齐><宽度><,><.精度><类型>(3)带关键字,即“{a}”、“{tom}”(1)不带编号,即“{}”

2023-11-03 22:21:21 202

原创 python检测序列中的元素是否满足严格升序关系

【代码】python检测序列中的元素是否满足严格升序关系。

2023-10-29 22:43:47 190

原创 Python求n位的自幂数

【代码】Python求n位的自幂数。

2023-10-29 20:11:31 741

原创 python内置函数sorted()

原地排序返回新列表。

2023-10-26 23:42:01 93

原创 python集合

集合是无序,可变序列.使用一对大括号界定,元素不能重复.集合中只能包含数字,字符串,不含可变类型的元组等不可变类型(可哈希)的数据,不能包含列表,字典,集合等可变类型的数据。

2023-10-25 19:57:27 115

原创 JDK的配置及运行过程

【面试题】JDK、JRE、JVM之间的关系?JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。JVM(Java vitual machine):Java虚拟机,运行Java代码。

2023-10-23 18:33:54 163

原创 模拟最终成绩计算过程

首先输入大于2的整数作为评委人数,然后依次输入每个评委的打分,要求每个分数介于0~100.输入完所有评委打分之后,去掉一个最高分,去掉一个最低分,剩余分数的平均分即为该选手的最终得分。

2023-10-22 19:10:41 446

原创 使用枚举法验证6174猜想

如果什么都没打印,则证明猜想。

2023-10-22 16:45:47 102

原创 生成包含10个随机字母或数字的字符串,然后统计每个字符的出现次数

【代码】生成包含10个随机字母或数字的字符串,然后统计每个字符的出现次数。

2023-10-22 14:42:43 168

原创 序列解包和生成器表达式

同时。

2023-10-21 18:09:09 186

原创 使用列表实现向量运算

相当于。

2023-10-21 14:32:33 113

原创 python实现矩阵转置

【代码】python实现矩阵转置。

2023-10-20 20:33:21 768

原创 自定义类型(结构体 , 枚举 , 联合)详解

位段的成员必须是 int / unsigned int 或 signed int(c99之后,也可以有其他类型,但基本都是int , char)位段的成员名后面有一个冒号和一个数字注意用,分隔。

2023-10-19 18:17:27 62

空空如也

空空如也

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

TA关注的人

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