- 博客(53)
- 收藏
- 关注
原创 MySQL基础知识(DDL、DML)
存储和管理数据的仓库。简称DBMS。操作和管理数据库的大型软件。操作关系型数据库的标准语言,定义了一套操作关系型数据库统一标准。操作关系型数据库的标准语言,定义了一套操作关系型数据库统一标准。
2025-06-11 20:56:18
615
原创 Web后端开发(请求、响应)
请求:获取请求数据响应:设置响应数据BS架构:浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器。CS架构:客户端/服务器架构模式。(需要下载响应的客户端即软件)CS(开发、维护麻烦 体验感强) BS(维护方便 体验一般)
2025-06-08 17:16:31
1152
原创 Web后端开发(SpringBootWeb、HTTP、Tomcat快速入门)
超文本传输协议,规定了浏览器和服务器之间数据传输的规则。1.基于TCP协议:面向连接,安全2.基于请求-响应模型的:一次请求一次响应3.HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。缺点:多次请求间不能共享数据。优点:速度快Web服务器是一个软件程序,对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是“提供网上信息浏览服务”。Tomcat。
2025-06-04 20:47:47
1357
1
原创 Web后端快速入门(Maven)
Apche Maven 是一款用于管理和构建java项目的工具,它基于项目对象模型(POM)的概念,通过一小段信息来管理项目的构建。通过插件完成项目的标准化构建仓库:用于存储资源,管理各种jar包。(导入依赖时一般先从本地仓库加载,如果没有再连接中央仓库下载)本地仓库:自己计算机上的一个目录。中央仓库:由Maven团队维护的全球唯一的。远程仓库(私服):一般由公司团队搭建的私有仓库。
2025-06-03 20:46:16
1375
1
原创 Web前端快速入门(Vue、Element、Nginx)
Vue项目-创建方式一:命名行: vue create vue-project01(create后为项目名称)方式二:图形化界面 :vue ui(会调用出Vue的项目管理器)创建方法:创建一个文件夹 --> 双击进入文件夹输入cmd,再输入vue ui调出图形化界面。
2025-05-28 23:11:27
1122
原创 Web前端快速入门(Vue&Ajax,前端与服务器的交互)
35 && age<60">中年人</span>生命周期的八个阶段:每触发一个生命周期的事件,会自动执行一个生命周期的方法(钩子)<span v-else">老年人
2025-05-27 22:58:57
1084
原创 Web前端开发(JS的快速入门)
元素的底部,可改善显示速度外部的JS文件中,只包含JS代码,不包含<script>标签<script>标签不能自闭合<head><title>JS引入方式</title>-- 内部脚本 -->-- 外部脚本 --></head><body>
2025-05-24 15:24:14
1427
2
原创 Web前端开发(HTML、CSS快速入门)
HTML:负责网络页面结构css:负责网络页面表现(页面元素的外观、位置等页面样式,如:颜色、大小等)。javaScript:负责网页的行为(交互效果)。
2025-05-22 22:52:41
1469
原创 MySQL基础
这两个值必须用AND关键字分隔。(WHERE子句的位置,同时使用ORDER BY和WHERE子句时,应该让ORDER BY子句位于WHERE子句之后,否则将会产生错误)(关键字需保证顺序在使用了的情况下ORDER BY位于FROM后,而LIMIN位于ORDER BY后,这样使用的子句不会产生次序错误)从以上的列子而言,仅在多个行具有相同的prod_price值时才对产品按prod_name进行排序。在创建表时,表式设计人员可以指定其中的列是否可以不包含值,一个列不包含值时,称其为包含空值NULL。
2025-05-21 11:02:55
949
原创 msq基础
上述语句用SELECT语句从products表中检索一个名prod_name的列,所需列名在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名。列的顺序一般是列在表定义中出现的顺序。但当表的模式变化(如添加或删除列)可能会导致顺序的变化。除了指定所需的列外,SELECT语句还可以检索所有列而不必逐个列出它们。SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。LIMIT 5,5指示MySQL返回从行5开始的5行。(返回数据的顺序可能是数据被添加到表中的顺序也可能不是。
2025-05-20 23:15:46
254
原创 聊天室项目总结
msq基础 jdbc 的基本语句(后续还需要继续巩固),实现一个项目的基本结构(前后端的区别、长连接的实现),javafx的基本使用,debug的能力。1.再花一周时间去实现一个创新功能点,比如发送语音和语音通话,然后修改部分bug,优化界面,或者实现我想写却没有完成的地方,例如好友分组,黑名单。4.将分片文件写入临时目录,并且判断是否已经将所有分片进行发送,如果是则合并分片,并且删除临时分片,否则继续接收。3.太过于依赖他人,自己的想法有点少,遇到bug会有退缩,不继续去探究,而去寻求更简单的方式。
2025-05-18 22:54:09
410
原创 25.5.13
感觉很久没有写算法题了,先来个滑动队列模板题试试水,就是用双端队列来实现会很方便,拿结构体来记录是第几个数和数的值即可,再定义两个双端队列,一个使他的值单调递增一个使他的值单调递减 使队头元素为最大值或者是最小值,当超过范围k时从队头弹出元素。
2025-05-13 23:13:22
181
原创 雪花算法、md5加密
它的主要作用是将任意长度的数据转换为 。分布式系统唯一ID生成:解决数据库自增ID在分布式环境下的唯一性问题、避免UUID的无序性和性能问题。时间戳部分保证ID全局趋势递增(适合数据库索引优化)、同一结点生成的ID按时间严格递增。可以用来生成用户唯一id,在做聊天室这个项目时我的用户id就是用雪花算法来完成的。雪花算法生成ID是一个64位长整型(但是也可以通过优化简短位数)核心特性:固定长度输出、不可逆性、抗碰撞性、计算速度快。:非安全场景的快速数据校验(如非敏感文件校验)以下是生成14位的id代码。
2025-04-08 23:19:47
330
原创 ER-图,详情和画法
用户:账号、昵称、密码、性别、邮箱、个签、密码、头像、在线状态。(为了简便性图示上并没有多对多的关系,也没有显示主键的关系)表示实体间的交互(拥有、包含),用菱形表示。实体:用户、群聊、好友、消息、群成员、常用语。表示现实中对象或概念,用矩形表示。描述实体的特征,用椭圆表示。一个用户可以拥有多个群聊。一个用户可以发送多个消息。示例:用户、老师、学生。一个用户可以有多个好友。分为主键(用户id)和非主键(用户昵称)3.定义实体间的关系。
2025-04-06 23:09:11
469
原创 jdbc入门
JDBC概念:就是使用java语言操作关系型数据库的一套APIJDBC本质:官方定义的一套操作所以关系型数据库的规则,即接口JDBC好处:各数据厂商使用相同的接口,java不需要对不同数据库分别开发。
2025-03-30 22:03:19
616
原创 多 线 程
1.能够设置和获取线程名字是因为他们都继承于Object类。多线程应用场景:拷贝、迁移大文件,加载大量的资源文件。并行:在同一时刻人,有多个指令在多个cpu上同时执行。当其他非守护线程执行完毕后,守护线程也会陆续结束。而且三种方法在实验类中获取线程的名字方式不同。直接调用方法并且加true即可设置为守护线程。应用场景:聊天时发送文件,发送文件为守护线程。线程:线程是操作系统能够运行调度的最小单位。并发:有多个指令在单个cpu上交替执行。1.继承Thread类的方式实现。表示把该线程调用到当前线程之前。
2025-03-27 23:14:03
360
原创 线段树和树状数组
不可差分的信息一般不用树状数组维护,会选择用线段树维护,因为线段树维护的方式思考难度更低。一段范围上统一进行了某种修改操作,可以用O(1)的时间,就把这段范围维护的信息加工出来。满足的信息比如:累加和、最大值、最小值;线段树的优势:用法全面、思考难度低、维护信息类型多(包括可差分信息、不可差分信息)树状数组的劣势:维护信息的类型少、维护某些不可差分的信息时思考难度大并且不易实现。父范围上的某个信,可以用O(1)的时间,从子范围的信息加工得到。线段树非常灵活,维护信息的种类很多,支持范围修改的类型也很多。
2025-03-16 16:12:08
247
原创 关于Java的入门
其它类的个数不限,也可以将main方法写在非public类中,然后指定运行非public类,这样入口方法就是非public的main方法。'\t'制表符:在打印的时候,把前面字符串的长度补齐到8,或者8的整数倍。字符类型需要用单引号引起来(字符类型中只有一个,不管是汉字,英文符号,还是标点符号都可以算)而字符串需要用双引号引起来(即使双引号中只有空格或者什么都没有其都为字符串类型),上面这个格式里面,只有sc是变量名,可以变,其他的都不允许变。在这个格式里面,只有i是变量名,可以变,其他的都不允许变。
2025-03-12 22:54:46
435
原创 堆、优先队列、堆排序
必须是一个完全二叉树(完全二叉树:完全二叉树只允许最后一行不为满,且最后一行必须从左往右排序,最后一行元素之间不可以有间隔)
2025-02-21 19:37:50
618
原创 邻接表、链式前向星
邻接表以点为基本单位进行尾插链式前向星以边为基本单位进行头插空间复杂度差异不大,区别在于对不同图进行操作在遍历不同结点还是寻找特点边可能有不同效率。
2025-02-20 16:50:11
467
原创 动态规划之背包问题
动态规划是一个重要的算法范式,它将一个问题分解为一系列更小的子问题,并通过存储子问题的解来避免重复计算,从而大幅提升时间效率。
2025-02-19 22:39:15
1417
1
原创 EasyX安装及使用
设备:简单来说就是绘图表面(在EasyX中,设备分为两种,一种是默认的绘图窗口,一种是IMAGE对象。通过SetWorkinglmage()函数可以设置当前用于绘图的设备。设置当前用于绘图的设备后,所有的绘图函数都会绘制在该设备上。initgraph(int width,int height,int flag=NULL)用于初始化绘制窗口。坐标默认的原点在窗口的左上角,x轴向右为正,y轴向下为正,度量单位是像素点。RGB合成颜色(红色部分,绿色部分,蓝色部分)flag 窗口的样式,默认为NULL。
2025-02-18 21:51:34
387
原创 测 试补题
这个题比较简单,但是因为刚开始翻译太狗屎了根本没看懂题目所以不会写,只要出现重复的可以先向前消除再向后消除,所以最小长度就为1,而除此以外,最小长度都为原长度。本质是n变成n+1,要么是3变成4这种,要么是9变成10(999变成1000)这种,第一种就是y-x=1,第二种就是减少多个9最后加1,那就是x-y%9=8。(不能用双层循环,会时间超限,所以用结构体先排序,从小到大输入,指向自身则将要去除的边数加一,再进行比较出现重复边则加一)(挺讨厌自己差点天赋的,每次都好像差一点点)
2025-02-17 19:52:10
469
原创 二分查找相关题解
例如,如果一排树的高度分别为 20,15,10 和 17,Mirko 把锯片升到 15 米的高度,切割后树木剩下的高度将是 15,15,10 和 15,而 Mirko 将从第 1 棵树得到 5 米,从第 4 棵树得到 2 米,共得到 7 米木材。请帮助 Mirko 找到伐木机锯片的最大的整数高度 H,使得他能得到的木材至少为 M 米。因为是求最大值,所以向右查找,mid即为锯片的高度,将树大于该高度的相加,如果小于目标高度则需减小锯片的高度,所以让有边界等于mid,反之增大锯片高度让左边界等于mid。
2025-02-16 17:47:58
282
原创 单调队列及其相关题解
3.在插入新元素时,如果新元素破坏了当前的单调性,则在队尾删除一部分元素,直到满足单调性要求。这样可以保证队列中的元素保持单调性。经典的滑动窗口问题,直接用单调递增队列,和单调递减队列即可,使队头元素为最大值或者是最小值,当超过范围k时从队头弹出元素。将队列值用map存储起来,用c++自带函数对其进行去重,最后直接将不符合条件的弹出队列即可。2.单调队列的特点是队列中的元素按照一定的单调性排列,常用的有单调递增和单调递减。1.单调队列是一个双端队列,支持在队列两端进行插入和删除操作。
2025-02-14 21:23:19
685
原创 并查集题解
此题有坑就是女生为负数,所以我们要将其先转化为正数再用并查集来维护(转化为正数只需要将其加上n即可)然后再分别找出以根结点男生为同一集合的人数和以根结点女生为同一集合的人数比较大小,小的为答案(因为一对只能一一匹配,不能一夫多妻或者一妻多夫)背包问题的本质是动态规划:把一个大问题分散成多个子问题,然后对每个子问题进行局部最优求解并储存结果,跳过重复的子问题,最后得到的就是一个整体最优解。设置一个根结点,当f中存的数也就是根结点时,直接返回原值,否则递归调用查找该结点的根结点并且将f设置为根结点。
2025-02-10 19:58:28
327
原创 25.2.9总结
(思维题还是太超标了,建议削一削) a,b为t在s中左上角坐标,一一对比即可(大胆点数据量比较小,直接四层循环也能做,但是我是胆小鬼) (不会,学长的思路)把有朋友关系的人连上边,一个连通块内的所有人都可以通过若干次操作来互相成为朋友。求出每个连通块的大小,人数和已有的朋友关系,就可以求出连通块内未有的朋友关系,也就是答案。这个过程可以用并查集维护(ok准备下播)
2025-02-09 22:23:26
390
原创 dijkstra算法类型题解
第一个循环创数组,默认所有点之间的距离为无穷大(用一个大整型来表示),第二个循环输入数据,记录每个点之间的实际距离,dis是从一个点到其他点的距离数组,book是用来记录这个点是否被到达过的数组,后面的循环就是每次从一个点出发,找到与其距离最短的点并记录,同时更新到达其他点的距离。初始化三个数组,final标记各顶点是否已找到最短路径,dist最短路径长度,path路径上的前驱。带权路径长度——当图是带权图时,一条路径上所有边的权值之和,称为该路径的带权路径长度。不断循环更新最短路径长度。
2025-02-08 22:53:03
505
原创 最小生成树相关题解
每次选择一条权值最小的边,使这条边的两头连通(原本已经连通的就不选),直到所有结点都连通。简直如出一辙,不过一个是求小生成树,一个是最大生成树且多增一个条件至多k条。该题用Kruskal算法可以写出(因为我只会这个算法的实现)
2025-02-07 21:02:26
930
原创 最小生成树、最短路径问题
实现思想:建立两个数组,一个用于标记各节点是否已经加入树,另一个记录各个结点加入树的最低代价,循环遍历,更新还没有加入各个顶点的lowcast值。第一个矩阵为目前来看我们能够找到的各顶点间的最短路径长度为多少,初始状态为,不允许在其他顶点中转,最短路径为多少;第二个矩阵为两个顶点之间的中转点,初始状态为所有顶点都不允许有中转点把数组值设为-1,带权路径长度——当图是带权图时,一条路径上所有边的权值之和,称为该路径的带权路径长度。O(|E|log2|E|)适用于边稀疏图。初始化两个矩阵(二维数组),
2025-02-06 17:23:53
364
原创 图的基本操作、图的广度优先遍历、图的深度优先遍历
空间复杂度,最坏为O(|v|) 邻接矩阵中时间复杂度为O(|v|^2) 邻接表中时间复杂度为O(|v|+|e|)邻接矩阵中时间复杂度为O(|v|^2) 邻接表中时间复杂度为O(|v|+|e|)邻接矩阵直接遍历行或列判断是否有边,邻接表直接遍历边结点查看是否有边。邻接矩阵直接遍历行或列判断是否有边,邻接表直接遍历是否有边。(1)判断图g是否存在边<x,y>或(x,y)图搜索相邻结点时,有可能搜到访问过的相邻结点。(8)获取图中边的权值,设置图中边对应的权值。(2)列出图g中与结点x相邻的边。
2025-02-04 16:31:09
659
原创 图 、图的存储
点到点的距离——从顶点u出发到顶点v之间的最短路径若存在,则此路径的长度称为从u到v的距离。带权路径长度——当图是带权图时,一条路径上所有边的带权之和,称为该路径的带权路径长度。有向图中,若从顶点v到顶点w和从顶点w到v之间都有路径,则称这两个顶点是强连通的。边的权——在一个图中,每条边都可以标上具有某种含义的数值,该数值称为该边的权值。用|v|表示图g中顶点的个数,也称图g的阶,用|e|表示图g中边的条数。有向图O(|v|+|e|)无向图中,若从顶点v到顶点w有路径存在,则称v和w是连通的。
2025-02-03 17:15:36
1378
原创 哈夫曼树&并查集
查一个元素属于哪个集合:可以从指定元素出发,一路向北,找到根结点,判断两个结点是否属于同一个集合,分别查找两个元素的根结点,判断是否相同。哈夫曼树:在含有n个带权叶节点的二叉树中,其中带权路径长度最小的二叉树称为哈夫曼树,也称为最优二叉树。有哈夫曼树得到哈夫曼编码——字符集中的每个字符作为一个叶子结点,各个字符出现的频度作为结点的权值。2.带权路径长度:从树的根到该节点的路径长度(经过的边数)与该节点上权值的乘积。2.树的带权路径长度:该树的所有叶子节点的带权路径长度之和。双亲表示法更适合实现并查集。
2025-02-02 17:07:06
352
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人