自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Tlias 案例-部门管理(前端)

首先完成页面的基本布局接下来我们要将表中的数据变成动态的,在前后端分离开发中,前后端是并行开发的,前端可以用 Apifox 生成一个 Mock 地址,给前端进行测试。

2025-07-31 16:45:42 290

原创 Tlias 案例-整体布局(前端)

Vue Router:Vue 的官方路由。为 Vue 提供富有表现力,可配置的,方便的路由。Vue 中的路由:路径与组件的对应关系。组成:Router 实例:路由实例,基于 createRouter 函数创建,维护了应用的路由信息。<router - link>:路由链接组件,浏览器会解析成 <a>(超链接)。<router - view>:动态视图组件,用来渲染与展示与路由路径对应的组件我们如果要用这玩意的话,在创建 Vue 工程的时候记得选Yes。

2025-07-30 17:47:40 511

原创 Element Plus

Element:是饿了么团队研发的,基于 Vue3,面向设计师和开发者的组件库组件:组成网页的部件,例如 超链接,按钮,图片,表格,表单,分页条等等。

2025-07-29 22:59:06 214

原创 Vue 工程化

创建一个工程化的 Vue 项目,执行命令:npm create vue@3.3.4 (这里如果不指定版本就会自动安装最新版本)

2025-07-28 23:16:50 903

原创 Maven高级

为什么?将一个大项目拆分成若干个子模块,方便项目的管理维护,拓展,也方便模块间的相互引用,资源共享。

2025-07-27 22:21:45 494

原创 原理篇..

什么是starter 呢?就是我们引入进来的依赖场景:在实际开发中,经常会定义一些公共组件,提供给各个项目团队使用。而在 SpringBoot 项目中,一般会将这些公共组件封装为 SpringBoot 的 starter(包含了起步依赖和自动配置的功能)需求:自定义 aliyun-oss-spring-boot-starter,完成阿里云 OSS 操作工具类 AliyunOSSOperator 的自动配置。

2025-07-26 22:33:46 907

原创 SpringAOP

面向切面编程,面向方面编程),可以简单理解为就是面向特定方法编程场景:案例中部分业务方法运行较慢,定位执行耗时较长的接口,此时需要统计每一个业务方法的执行耗时优势:1:减少重复代码2:代码无侵入3:提高开发效率4:维护方便提示:AOP 是一种思想,而在 Spring 框架中对这种思想进行的实现,那我们要学习的就是 Spring AOP。

2025-07-26 00:00:22 847

原创 登录认证...

首先定义一个实体类用来给前端返回数据然后就是三层框架。

2025-07-24 14:42:41 698

原创 员工信息统计

准备工作:这里我们的 SQL 语句要用到一个新函数 case;创立一个实体类,用来封装返回信息,注意这里的属性名不能写错,不然会出BUG首先来看 Controller 层,因为这里的请求路径和之前不一样,所以我们要新建一个类然后来看 Service 实现类最后是 xml 文件。

2025-07-21 16:18:26 245

原创 全局异常处理

我们现在已经完成了员工管理和部门管理两个功能接口,但是此时我们发现如果前端编辑员工或部门时发生了错误,比如用户名重复,手机号重复这些,那么前端是收不到提示的,此时我们要解决这个问题。那么这时候可能有人会问:如果出现了 Duplicate 型的异常,到底是匹配第一种方法,还是第二种方法呢?下一步我的目标是让这个出错信息更具体,比如我现在手机号重复了,那么就要直接提示是手机号重复的问题。我们可以看到,这种匹配就是从下往上匹配的,如果在下面匹配到了,就不用往上跑了。我们打开这个参数类的可视化图;

2025-07-21 13:19:03 260

原创 实战--Tlias教学管理系统(员工管理)

场景:部门与员工的关系(一个部门下有多个员工)一对多的关系如何实现?在数据库表中多的一方,添加字段,来关联一的一方的主键。

2025-07-20 01:06:16 669

原创 实战--Tlias教学管理系统(部门管理)

2:了解开发流程。

2025-07-14 14:00:22 795

原创 LeetCode 100题(2)(10题)

这就要考虑后面的数是正数还是负数了,也就是所谓的后效性,既然我不知道是让它变大还是变小,那我就把两个值都存起来呗,也就是 用两个数组 maxn,和 minn 表示,maxn[i] 表示截止到 i 这个索引,集合的最大值, minn[i] 则是最小值,最后一个易错点就是不要忘了,num[i] 自身也可以算作一个集合,所以状态转移的时候不要忘了,num[i] 也可以取。思路:面试考的概率很大,思路没什么难的,主要是用个 prev 记录前面的节点,然后改变箭头的方向,代码也很简单。,返回其中的多数元素。

2025-07-11 01:19:32 716

原创 MyBatis

MyBatis是一款优秀的持久层框架,用于简化 JDBC的开发使用Mybatis查询所有用户数据准备工作:1:创建SpringBoot工程,引入 Mybatis 相关依赖2;准备数据库user,实体类User3:配置 Mybatis(在application.properties中数据库连接信息)编写 Mybatis 程序:编写 Mybatis 的持久层接口,定义SQL(注解/XML);提示:Mybatis的持久层接口命名规范为 XxxMapper,也称为 Maooer 接口。

2025-07-08 18:06:48 563

原创 JDBC入门

sun公司提供的一套操作关系型数据库的API(规范)

2025-07-07 00:52:01 122

原创 LeetCode 100题(1)(10题)

思路:最简单的方法就是直接暴力排序,但是时间复杂度是O(nlogn),但我们可以用快速排序(分治)的思想,每次选个轴点,然后经过一轮分类后,这个轴点左边的元素都是小于它的,右边的元素都是大于它的,所以这个轴点的下标 j 就是排名第 j 的元素,然后如果这个排名 j 比我们要的排名高,那就继续排序左边的区间,否则就排序右边的区间。题意:给定一个数组,和一个目标数target,让你找到两个数,使他们加起来等于target,并输出这两个数的下标,保证有解。补充:当然这是二叉树的情况,如果是多叉树呢?

2025-07-06 13:37:28 871

原创 MySQl

数据库:DataBase(DB),是存储和管理数据的仓库数据库管理系统:DataBase Management System (DBMS),操纵和管理数据库的大型软件SQL:Structured Query Language,操作关系型数据库的编译语言,定义了一套操作关系型数据库的统一标准。

2025-07-04 16:54:10 601

原创 刷题随笔(dp)

当然我们可以仔细想一想,如果我们要让最后一天的m最大,那么我们是不是必须保证每天交易完之后我的m都尽可能的大,因为这样我们在第二天交易的时候才能有更多选择。思路:一道比较经典的dp问题,对于每个点,它可以是从上面的点向下转移得来,也可以是下面的点向上转移得来,也可以是左边的点向右转移得来,一共三种情况,而且这题不能往左走,也不能走已经走过的格子,所以这题没有后效性,因此可以考虑dp,dp[i][j][0 / 1],最后一维代表方向。思路:01背包问题的变种,直接看代码,还是比较简单的一道题。

2025-07-02 17:54:32 276

原创 SpringBootWeb入门

Spring Boot是一个构建在Spring框架顶部的项目。它提供了一种简便,快捷的方式来设置,配置和运行基于Web的简单应用程序。它是一个Spring模块,提供了RAD(快速应用程序开发)功能。它用于创建独立的基于Spring的应用程序,因为它需要最少的Spring配置,因此可以运行。简而言之,Spring Boot是和嵌入式服务器的组合。在Spring Boot不需要XML配置(部署描述符)。它使用约定优于配置软件设计范例,这意味着可以减少开发人员的工作量。我们可以使用Spring。

2025-06-30 23:15:30 798

原创 Maven

产生原因:由于网络原因,依赖没有下载完整导致的,在maven仓库中生成了xxx.lastUpdatede文件,该文件不删除,不会再重新下载。注意:重新加载依赖,依赖下载了之后,maven面板可能还会报红,此时可以关闭IDEA,重新打开IDEA加载此项目即可。1:根据maven依赖的坐标,找到仓库中对应的xxx.lastUpdated文件,删除,删除之后重新下载项目即可。3:定义坐标的:groupId,artifactId,version。default:核心工作,如:编译,测试,打包,安装,部署等。

2025-06-28 01:02:14 934

原创 Ajax入门

介绍:Asynchronous JavaScript And XML,异步 的JavaScript和XML;XML:(英语:Extensible Markup Language) 可拓展标记语言,本质是一种数据格式,可以用来存储复杂的数据结构作用:(1): 数据交换:通过Ajax可以给服务器发送请求,并获取服务器响应的数据(2): 异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如搜索联想等等。

2025-06-25 11:36:30 147

原创 Vue中的常用指令

key: 元素的唯一标识,便于vue进行列表项的正确排序使用,提升渲染性能,推荐使用id作为key(唯一),不推荐使用index作为key(会变化,不对应);语法:v-show="表达式", 表达式值为true,显示;语法:v-if="表达式",表达式值为true,显示;可以发现:虽然他们在给用户的呈现上是一样的,但是底层的原理还是不同的。前缀的特殊属性,不同的指令具有不同的含义,可以实现不同的功能。简化: :属性名="属性值"(去掉前面的v-bind)场景:要么显示,要么不显示,不频繁切换场景。

2025-05-23 23:36:16 751

原创 JS核心语法-DOM个人学习笔记

DOM操作的核心思想:将网页中所有的元素当做对象来处理。(标签的所有属性在该对象上都可以找到)DOM:Document Object Model 文档对象模型。(2)改变 HTML 元素的样式( CSS )* 操作DOM对象的属性或方法(查资料)(1):Document:整个文档对象。(3):Attribute:属性对象。(2):Element:元素对象。(5):Comment:注释对象。(1)改变 HTML 元素的内容。* 获取要操作的DOM元素对象。(4):Text:文本对象。

2025-05-20 13:59:53 213

原创 Codeforces Round 1008 (Div. 2) 补题

思路:还是比较好想的构造题吧,这题有两个点,一个就是a1应该取多少,另一个就是,如何保证最终构造出来的数组里面没有重复元素,那么我们只需要把最大的元素作为a1,然后把a2,a4.....这些偶数项变成原数组中较小的几个元素,那么奇数项就是较大的几个元素,这样a2 - a3 + a4 - a5.....算出来一定是个负数,那么想让a1满足条件,就必须在偶数项插入一个比a1大的元素,因为a1已经是原数组中最大的元素了,所以这个数一定不会和原数组中的数重复。但如果逆向处理,每一步的决策仅影响后续操作的乘数。

2025-05-01 17:25:14 482

原创 bitset个人学习记录

这里需要注意的是,如果括号里面填充的字符串的话,一定只能有0或1,不然会出bug,如果是整数,会自动转化成二进制。第二个:如果集合中全为0, 返回true, 否则返回false, 跟第一个是反着的。第一个:如果集合中全为0,返回false, 否则返回true。:用二进制位表示状态(如物品选/不选),优化空间复杂度。,减少内存占用(1位 vs 1字节), 这里用埃式筛举例。这里的意思是创建了1个长度为50,默认是0的集合。第三个:反转集合(0变成1, 1变成0)第一个:将集合全部设为1。

2025-04-24 19:23:17 380

原创 高斯消元个人学习记录

这里可以看到,当r < n时,方程要么无解,要么有无限解,那么是什么原因导致了r < n呢?原因就在于有一项列(x, y, z)的系数全为0, 我们假设z的系数为0, 那么最后一行是不是。, 当然如果这个数是非0的数,那么就说明无解,如果恰好是 0 == 0, 那么我们也无法确定这个z的值,这就导致了x, y也无法确定,也就是有无穷多个解.3: 然后将第r行的每个数都除以a[r][c]的系数,目的就是为了让a[r][c]的系数为1,方便后续消元。把整个算法大体上分成几个部分(个人理解)

2025-04-23 14:05:18 530

原创 Educational Codeforces Round 177 (Rated for Div. 2) 补题

思路:其实这题还是比较常见的思路,有点并查集还有dfs的感觉,但是这题只需要简单模拟就可以。观察样例可以发现,如果本次修改的位置d[i] == a[d[i]],意味着我们只需修改一次就可以满足要求,否则我们就要顺着修改的位置,一层一层的往下修改,这里可以将本轮要修改的值看成在一个集合里,每次修改之后标记为0。思路:因为不用考虑r的位置,只需要考虑l的位置,所以这题的难度大大下降了,我们把每n个元素看成一组,然后确定在l在哪一组,然后慢慢枚举,找到l的位置即可。以及还要知道用逆元表示组合数的板子;

2025-04-08 13:51:05 613

原创 Codeforces Round 1014 (Div. 2) 补题

思路:首先特判这个字符串如果只有一种字符,那肯定是没有任何操作空间的。然后通过模拟, 假设此时的字符串是a bbb, 那么第1个a和第1个b之间我是可以一直产生a和c的,最后变成acacabbb, 当这时候我们只有继续插入b,才能继续操作,所有我们可以发现,我们一定是优先让数量最小的字符尽可能的大,当我们数量第二小的字符和数量最多的字符数量一样时,我们就无法再操作了,接着只有插入数量最多的字符才能进行操作,至于这样操作为什么是保证 <= n * 2, 直接猜就完了^-^, 官方给的证明也没看懂.

2025-04-03 14:53:46 883

原创 Codeforces Round 1011 (Div. 2) 补题

思路:要求找到1个k,使得(x + k) + (y + k) == (x + k) ^ (y + k);思路:首先如果a数组和b数组里面的元素都是一样的话,那么我们直接输出1个极大值即可。接着我们要推出一个公式假设 a % k == b,那么可以推出 (a - b) % k == 0,这个是比较容易推的,那么如果要满足条件的话,a数组与b数组对应位置的差的合一定是k的倍数,所以我们先计算出这个合sum, 然后枚举sum的所有因子,也就是枚举k的可能值,然后直接暴力判断即可,代码还是比较好懂的。

2025-03-30 23:33:15 483

原创 HDU2025“钉耙编程”中国大学生算法设计春季联赛(3)补题

思路:个人感觉非常抽象,非常绕的一道题,官方题解给的也是没看懂,盯着代码看了一个下午,稍微理清了一点,就是部落和位置之间的映射关系,详细见代码(纯个人理解,不一定对,欢迎大神指出错误),因为代码很常规就直接贴的官方代码。都是奇数,那就要保证m & n = m,证明如下,然后考虑位运算,要保证 m & n = m, 那么对于二进制n的每一位,如果那一位是1,那么对应m的那一位可以是1也可以是0,如果那一位是0,那么只能是0一种情况。思路:主要考察了Lucas定理,按照题目的要求,必须保证每一项。

2025-03-28 13:20:45 192

原创 Educational Codeforces Round 176 (Rated for Div. 2 补题

思路:分k是否等于1来分类讨论,如果k不等于1,通过模拟可以发现,就是取最大的k + 1个数,如果k等于1,那就取2个元素,而且第二个元素要么是第一个元素,要么是最后一个元素,遍历一遍即可。), 前者是固定的,后者我们用一个后缀和求即可,但是我们要注意如果 y == n 或者 x == n,那我们还要减掉这种情况,所以我们再开个cnt数组记录p位置后面有多少个元素 == n。思路:贪心,开始时分n为奇偶分类讨论,每次减能减的最大值即可。

2025-03-22 21:51:30 539

原创 HDU“钉耙编程”中国大学生算法设计春季联赛(2)补题

然后我们将红宝石看成1元,蓝宝石看成2元,每次操作可以拿 1-3 元,谁无法操作就输掉,这里就比较好想了,必败态就是当前总钱数是4的倍数时,所以如果开局是4的倍数,则先手必败,否则先手必胜。思路:对于这个数列,我们先从后往前遍历一遍,记录每个位置后面有多少个非0不同的整数,然后从前往后遍历,当一个数(p)出现了第2次的时候,假设它出现的位置是j,那么他对答案的贡献就是b[j + 1](它后面不同的整数的个数),并且后续如果这个数再出现,那么它对答案就没有了贡献。题意:给定一个长度为n的数列,问有多少个。

2025-03-21 15:01:57 678

原创 Codeforces Round 1005 (Div. 2) 补题

思路:首先比较好想到的思路是,如果我们要保证数组的分数最大,那么我们删除的连续子数组里一定不能有2个及以上的相同的元素,否则删除后一定会让分数比初始时刻小(初始时刻的分数就是最大分数,后续操作也就是保证数组的分数和初始时刻一样),所以我们一开始要将某个元素出现次数 >= 2的位置标记位false,保证后续不会选到,最后用双指针扫一遍即可,注意 j == n的时候要break,否则会TLE,因为最坏情况是O(n ^ 2);题意:给定一个长度为n的数组,定义这个数组的分数为:数组的长度 - 不同的元素数量;

2025-03-16 23:35:41 926

原创 HDU“钉耙编程”中国大学生算法设计春季联赛(1)补题

当我们有3个人时,第2个人一定会反对第1个人,第3个人一定会支持第1个人,所以第1个人分给第3个人1个金币即可,分给第2个人0个金币,因为第2个人无论如何都会反对;当我们有4个人时,第2个人一定会反对第1个人,而第3个人一定会支持第1个人,因为如果让第2个人开始分配的话,他只能分到0个金币,第4个人也一定会反对第1个人,因为让第2个人开始分配的话,第4个人至少还能得到1个金币,所以第1个人只需要分配给第3个人1个金币,第2个人和第4个人分配0个金币;,问染染不会碰到这k人的概率。

2025-03-11 09:32:20 650

原创 AtCoder Beginner Contest 393 补题

思路:发现直接很难直接对整个数组进行操作,那不妨在1到1e6之间来进行操作,对于每一个数,存入它的所有约数,然后遍历数组,对于数组里的数,记录它们每个约数出现的次数,最后遍历1到1e6,假如一个数出现的次数 >= k 那么就跟新它倍数的ans,时间复杂度为O(N lgN)思路:因为题目上说Ri表示(a1 ... aRi)的子序列,所以可以离线操作,然后dp[i]表示当前i位置的最小值,这边求LIS是比较版的,最后判断目前离线操作的位置i有没有等于Ri,如果等于,就更新答案,此时一定最优。

2025-02-26 14:06:17 275

空空如也

空空如也

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

TA关注的人

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