自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【前端基础】--- HTML

 个人主页  :  9ilk   专栏  :  前端基础 Web前端是用来给用户呈现一个个网页的,一个软件通常情况下是由于前端+后端完成的。生活中我们遇到的Web页面,PC端程序页面,移动端APP页面等就是前端页面,前端是指用户在浏览器中看到并与之交互的部分。 HTML()是前端开发的基础,它用来定义网页的结构和内容。所谓 指的是文本、声音、图片、视频、表格、链接等。我们可以简单的使用记事本编写一个html页面:标签名()放到<>中大部分标签成对出现,为开始标签,为结束标签少数标签只有开始标

2025-04-15 16:13:10 1219 21

原创 【Git】--- 企业级开发流程

测试系统的完善和成熟也是衡量一个软件企业整体水平的重要指标之一,测试往往被忽视,因为它对软件开发企业不产生直接的效益,但是它却是对软件质量的最终保障,乃至项目能否成功的重要因素。对于用户来说 , 他们所在的环境需要是代码稳定,无bug来确保用户体验良好,开发者不能在该环境里做实验或者随意改动,否则会影响用户的正常使用。对于规模比较大的公司来说,其实不止这几个环境,比如项目正式上线前还存在仿真/灰度环境,再比如还存在多套测试环境,以满足不同版本上线前测试的需要。软件的规模也在逐渐变得庞大。

2025-04-12 15:43:19 1295 19

原创 【Git】--- 多人协作实战场景

在同一分支下进行多人协作的工作模式通常是这样:1. 首先,可以试图用git push 远程仓库 远程分支 推送自己的修改。2. 如果推送失败,则因为远程分支比你的本地更新,需要先使用git pull试图合并。3. 如果合并存在冲突,则解决冲突,并在本地提交。4. 没有冲突或解决完冲突之后,再用git push 远程仓库 远程分支 推送即可。5. 功能开发完毕,将分支merge进master,最后删除分支。当多人各自开发一个功能模块时 :1. 各自可以在远程或本地新建分支进行功能开发。

2025-04-10 22:03:29 927 13

原创 【Git】--- Git远程操作 && 标签管理

1. git clone --- 克隆仓库2. git remote [-v] --- 查看远程仓库信息3. git push 远程仓库名 本地分支:远程分支 --- 向远程仓库推送4. git pull 远程仓库 远程分支:本地分支 --- 拉取远程仓库5. 配置命令别名:git config alias.xxx 命令。

2025-03-25 21:00:00 1483 25

原创 【Git】--- 分支管理

1. 创建分支 : git branch2. 切换分支 : git checout3. 创建 + 切换分支 : git checkout -b4. 合并分支 : git merge5. 删除分支 : git branch -d6. 查看分支情况 : git log --graph --abrev-commit7. no-ff模式合并 : git merge --no-ff -m "message"

2025-03-24 20:20:38 1878 20

原创 【动态规划】--- 路径问题

由状态转移方程得知,我们依赖(i+1,j)和(i,j+1)位置的状态,因此我们应该。

2025-03-18 16:54:05 1126 20

原创 【Git】--- 初识Git && Git基本操作

通过新建或粘贴进目录的文件,并不能称之为向仓库中新增文件,而只是在。

2025-03-16 22:06:03 1588 16

原创 【MySQL】 --- 视图特性 && 用户管理

Table: emp`empno` int(6) unsigned zerofill NOT NULL COMMENT '雇员编号',`ename` varchar(10) DEFAULT NULL COMMENT '雇员姓名',`job` varchar(9) DEFAULT NULL COMMENT '雇员职位',`mgr` int(4) unsigned zerofill DEFAULT NULL COMMENT '雇员领导编号',

2025-02-19 09:41:34 1239 25

原创 【Linux】--- 基础开发工具之makefile、git、gdb

在大型项目中会有许多源文件,那么这些文件的编译工作和编译顺序是一个较为繁重的事情,如果有工具能帮助我们进行这些编译工作,就会节约时间提高效率,因此产生了自动化构建代码的工具:make/Makefile。会不会写makefile,从侧面说明一个人是否具备完成大型工程的能力。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。

2025-02-16 15:04:38 1765 19

原创 【Linux】--- 基础开发工具之yum/apt、vim、gcc/g++的使用

当用户想下载软件或工具时,都需要到特定位置进行下载,比如你在手机上下载app,需要到对应的应用商城下载。类似的,在Linux系统下也有下载的需求,通常来说下载方式主要有以下几种:1.源代码安装:下载程序的源码,进行编译得到可执行程序之后使用,非常不方便。2.rpm包安装:将源码提前在各种不同环境下编译好,形成一种压缩包叫rpm包,直接下载可执行程序就能安装好,实际上就是把可执行程序拷贝到指定路径下。但是主要可能会存在软件之间依赖问题,比如还需要你安装其他软件,额外的库之类的。3.yum/apt安装。

2025-02-14 20:26:20 1868 13

原创 【数据结构】--- 并查集

编号为4和9的同学属于1号小分队,该小分队有3人(包含队长1),编号为3和5的同学属于2号小分队,该小分队有3个人(包含队长1)。,现给这些学生进行编号:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};操作后对路径进行压缩(即直接将查询路径上的每个节点的父节点指向根节点),那么每次查询操作会更快,因为树的高度变小了,从而加速未来的查询。: 公司今年校招全国总共招生10人,西安招4人,成都招3人,武汉招3人,10个人来自不同的学校,遍历数组,数组中元素为负数的个数即为集合的个数。

2025-02-06 22:54:36 1202 24

原创 【MySQL】--- 索引

索引:提高数据库的性能,索引是物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行正确的 create index,查询速度就可能提高成百上千倍。但是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的IO。所以它的价值,在于提高一个海量数据的检索速度。

2025-02-02 17:39:40 1263 17

原创 【MySQL】--- 复合查询 && 内外连接

查询出来的结构,本质在逻辑上也是表结构。

2025-01-26 21:08:49 2289 18

原创 【动态规划】--- 斐波那契数模型

(比如对于新dp表的0下标位置,我们要保证对于如果字符串第二个位置的字符能跟第一个字符解码,此时需要新dp表i-2位置的值,也就是dp[0],此时我们需要设置它为。注:对于赋值顺序,不能从右往左赋,即c = d,b = c, a = b因为d给c之后,c被d覆盖了,但是b想要的是c的,而c原本的值被覆盖了!当遇到n=2时,此时n-3=-1很明显会会发生越界,因此对于边界情况,我们可以提前确定好边界位置在dp表中的值,即。由状态转移方程知,我们i位置的状态依赖于前几个位置的状态,因此我们填表顺序是。

2025-01-21 20:57:56 3161 26

原创 【C语言的小角落】--- 深度理解取余/取模运算

C语言 vs2019int main()int d = 3;//C语言中是-3,很好理解return 0;很显然,上面关于取模的定义,并不能满足语言上的取模运算 : 在C语言测试环境下,10%3得到的余数不满足r>0的要求。如果a和d是两个自然数,d非零,可以证明存在两个唯一的整数 q 和 r,满足 a = q*d + r , q 为整数,且0 ≤ |r|< |d|。其中,q 被称为商,r 被称为余数。对于C:-10 = (-3) * 3 + (-1) ,其中0 < |-1| < 3。

2025-01-03 19:51:40 1756 30

原创 【MySQL】--- 内置函数

说明:在msql中,length()函数返回的是字符串的字节长度,而不是字符的个数。如果字符串中包含非asci字符(如中文字符),它们的字节长度通常大于1,asci字符字节数是1;例子中每个中文字符在utf-8编码下占用3个字节,因此是9。我们发现current_time也可以插入,其实所有时间获取时都有年月日时分秒,约定:我们在MySQL中说的日期指的是年 月 日,时间指的是时 分 秒。如果我想范围为[0,100]的浮点数呢?注:这里取整方式是向0取整。

2025-01-03 10:08:35 1256 13

原创 【MySQL】--- 表的CRUD

查询数据时,column列表中除了能罗列表中存在的列名外,我们也可以将。

2025-01-02 12:31:06 1526 23

原创 【MySQL】--- 表的约束

某一种数据会。

2024-12-29 21:00:14 2036 27

原创 【MySQL初阶】--- 数据类型

MySQL是一套整体的对外数据存取方案,既然要存取数据,而数据有不同的类型,因此MySQL也存在不同的数据类型,有不同的用途:(1)有符号tinyint数值范围测试测试结果:测试结果:通过测试我们可以得到以下结论:1. MySQL中进行特定类型数据插入时,如果插入超出指定类型的数据范围,MySQL会直接拦截。2. 与语言的区别:在语言中,比如char a = 1234567;此时超出数据范围只会报警,因为会发生截断;而在MySQL中,如果我们插入特定类型不合法数据,它一般是直接拦截,MySQL不

2024-12-22 14:37:42 2458 23

原创 【MySQL初阶】--- 库和表的操作

1. 创建数据库: create database;2. 删除数据库: drop database;3. 修改数据库: alter database;4. 查看数据库: show databases;5. 选中数据库: use db_name;6. 查看选中哪个数据库: select database();7. 查看创建数据库时设定的选项: show create database;8. 数据库备份: mysqldump -P3306 -u root -p 密码 -B 数据库名 > 备份路径。

2024-12-20 16:52:08 1531 14

原创 【MySQL初阶】--- 数据库基础

1. mysql是数据库服务的客户端。2.mysqld是数据库服务的服务器端(可执行程序带d后缀的代表是守护进程)3.MySQL本质是基于C(mysql)S(mysqld)模式的一种网络服务。//netstat -lntp 命令会列出所有处于监听状态的 TCP 端口,并且显示这些端口对应的进程信息,同时以数字形式显示地址和端口号,不进行域名解析。我们知道端口号是用来表示一台计算机中特定进程所提供的服务。上图查询结果显示mysqld绑定了3306这个端口号,证明它是服务端。

2024-12-16 21:21:58 2428 22

原创 【分治】--- 快速选择算法

类比移动零的思路,我们可以先把数组划分为。

2024-11-25 22:15:00 1014 24

原创 【MySQL初阶】--- MySQL在Ubuntu环境下安装

对于以下可能出现的问题博主是采用重装系统(简单粗暴。本篇博客博主采用的是ubuntu 22.04的系统按照MySQL,且在root用户下安装。需要改成 mysql_native_password 方式。(1) 查看root用户的身份验证方式。(2) 修改身份验证方式。

2024-11-02 20:48:45 1682 20

原创 【Linux网络编程】 --- Linux权限理解

它包括:1.

2024-10-29 22:45:52 1289 57

原创 【Linux网络编程】--- Linux基本指令(下)

使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。head和tail就如他们名字一样浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head用来显示文件的开头至标准输出中,而tail当然就是看文件的结尾。输出重定向会覆盖原来文件的内容重新写入,如果我们不想覆盖在原文件内容末尾继续写入的话,此时我们可以利用追加重定向。指定显示指定范围的文件内容我们还可以使用管道。

2024-10-25 11:43:00 1379 36

原创 【Linux网络编程】--- Linux基本指令(上)

图中的../test.cc就代表一个相对路径,我们可以看到相对路径是相对于当前路径的相对路径特殊符号有以下几种表示意义:◆以“./”开头,代表当前目录和文件目录在同一个目录里,“./”也可以省略不写!◆以"../"开头:向上走一级,代表目标文件在当前文件所在的上一级目录;◆以"../../"开头:向上走两级,代表父级的父级目录,也就是上上级目录,再说明白点,就是上一级目录的上一级目录。◆以"/”开头,代表根目录。

2024-10-14 20:52:44 1249 40

原创 【与C++的邂逅】--- C++的IO流

类对应操作场景ifstream只读ofstream只写fstream可读可写注:使用文件流对象需要包含对应的头文件<fstream>在C语言中,如果想要将一个整形变量的数据转化为字符串格式,主要有两种方式:1. 使用itoa()函数2. 使用sprintf()函数int main()return 0;注意 : 这两个函数在转化时,都得需要先给出保存结果的空间,空间大小不好界定,而且转化格式不匹配时,可能还会得到错误的结果甚至程序崩溃。

2024-09-18 21:41:13 2365 61

原创 【与C++的邂逅】--- string容器使用

注 : string类通过运算符重载改变了反向迭代器++和--的行为,底层是封装的正向迭代器.总结 : 迭代器一共有四种:1. iterator的const和非const版本 以及 reverse_iterator的const和非const版本.

2024-09-08 16:23:10 2621 66

原创 【位运算】--- 进阶题目赏析

由图中我们可以知道,ret最后一定是两个只出现一次的数字(记为a和b)的异或,由于异或是相同为0,相异为1,因此我们可以利用n&(-n)提取异或后的ret最右边的1,也就是a和b在这个bit位上的数字不同,依照这个不同可以将原数组中的数字划分为两种:一种是k位上是1,一种是k位上是0,由于其他数字出现了两次他们异或之后得到的一定是0,最后ret1和ret0得到的一定是只出现一次的两个数字。异或一遍原来数字再异或一遍nums,就可以得到消失两个数字的异或。本节我们来赏析位运算的一些进阶题目。

2024-09-03 13:39:40 1219 31

原创 【位运算】--- 初阶题目赏析

那是因为如果两个数某个位上的数字都是1话,就需要进位,此时按位与得到的还是1,而如果两个数中有一位是0的话按位与就是0,因此通过按位与能很好的知道那一位进位,那一位不进位。我们知道异或其中两条运算律是a^a=0和结合率,因此我们遍历一遍原来的数字,再遍历一遍缺失数组,最后得到的数就是缺失的数字,因为未缺失的在两次过程相当于出现两次,也就是会异或为0,最后只剩缺失的没有配对.利用哈希表对小写字母进行映射,如果遍历过程中出现已经映射的直接返回false,若遍历完之后都没有出现映射两次的则返回true。

2024-09-02 22:59:31 1125 33

原创 【前缀和算法】--- 进阶题目赏析

以K=4为例子,求出某个前缀和为-1,-1%K应该为3,但有的编程语言-1%K = -1(不同编程语言对商的取整是不同的,有的向0取整,有的向负无穷取整).这里的-1应该要加上K,转正成3.这是因为-1和3分别模4结果看似不相等,但是3-(-1) = 4,4%4 == 0,所以前缀和-1和3其实是等价的,只是不同语言对%运算的处理不同。这道题与"和为K的子数组"其实是类似的,我们以i位置为结尾的子数组观察,如果能找到一段右边部分能被k整除,此时问题转化成。我们哈希表此时存的不是前缀和,

2024-09-01 15:54:04 1186 27

原创 【二叉树进阶】--- 前中后序遍历非递归

当我们还面临一个问题当取到左路结点的右子树时,我们需要想办法标记判断右子树是否已经访问过了,如果访问过就直接访问根,没有访问过就访问右子树。中序是对左路结点时不能先访问,而是先依次入栈,入栈完左路结点后再访问这些左路结点,再依次访问他们各自的右子树。后序跟前序的思路也是完全一致,毕竟模拟的是递归展开过程,只不过后序是左子树-右子树-根,最后再访问根结点,也就是说要左右子树都访问完之后才能访问根并出栈。3.如果左路节点右子树不为空,右子树已经访问过,那么上一个访问节点应该是右子树的根,

2024-08-30 17:21:25 1394 20

原创 【前缀和】--- 初阶题目赏析

f[i]表示前缀和数组,即【0,i-1】区间数组的和,由此可得f[i] = f[i-1] + nums[i-1];g[i]表示后缀和数组,即【i+1,n-1】区间数组的和,由此可以得到g[i] = g[i+1] + nums[i+1].获取dp前缀和数组,dp[i]用来表示[1,i]区间内数组值之和,由于中心下标是左边区间元素之和 == 右边元素之和,中心坐标不包括在那,所以我们可以先获取前缀和数组,遍历数组,当dp[i-1](左边区间) == dp[n] - dp[i](右边区间),返回中心坐标.

2024-08-30 10:54:28 1087 25

原创 【Python】--- 基础语法(上)

a = 10上述代码a为变量名,当我们创建多个变量时,就可以用名字来进行区分。定义变量时不用声明类型。注释是一种特殊的代码它不会影响到程序的执行但是能够起到解释说明的作用能够帮助程序猿理解程序代码的执行逻辑。

2024-08-29 11:43:11 1983 10

原创 【与C++的邂逅】--- 模板初阶

class 类模板名///...注意:类模板中函数放在类外进行定义时,需要加模板参数列表。public :, _size(0){}// 使用析构函数演示:在类中声明,在类外定义。~Vector();if(_pData)模板分为函数模板和类模板,他们不是具体的一个类或函数,而是代表一个家族。类模板 vs 模板类类模板是一个类家族,而模板类是通过类模板实例化出来的具体类。

2024-08-27 15:17:22 1617 43

原创 【与C++的邂逅】--- C/C++内存管理

如果用malloc申请一个自定义类型元素的空间,此时它的成员变量是没有进行初始化的。delete p2;delete p3;用new申请自定义类型空间时,此时会new完成的任务是申请空间分配地址+调用默认构造函数。当然你也可以显示调用其他构造。而delete完成的任务是先调用析构清理资源,再释放内存空间。//调用10次构造//调用10次析构。

2024-08-26 15:46:41 2109 39

原创 【与C++的邂逅】--- 类与对象(下)

(毕竟类只能在定义的时候构造).

2024-08-23 21:44:57 2208 29

原创 【与C++的邂逅】--- 类和对象(中)

构造函数,则C++编译器。

2024-08-22 14:49:07 1816 35

原创 【前缀和算法】--- 一维和二维前缀和模板

任取一块区域,假设D为(i,j)点,若我们要求dp[i][j]也就是求(1,1)到(i,j)区域的和,我们可以将这四部分相加,由于B和C不好求,我们可以利用A(dp[i-1][j-1])来间接求这两部分,但是不要忘记减去多进来的A。我们前缀和数组下标是从1开始的,如果下标从0开始,当求[0,2]区间的值之和时就转化成dp[2] - dp[-1]这个dp[-1]是个边界情况需要我们特殊处理且。我们发现,比如dp[3]是【1,3】区间值的和,那么就相当于是【1,2】区间的和+arr[3].2.使用前缀和数组。

2024-08-20 21:43:43 1247 33

原创 【二分查找】--- 进阶题目赏析

二分过程:参考代码:🏠 寻找旋转排序数组中的最小值📌 题目内容二分流程:参考代码:思考:我们划分两端区间是以D为参考点,那么我们是否能以A为参考点呢?🏠 0~n-1中缺失的数字📒 思路二:直接遍历找结果📒 思路三:位运算📒 思路四:高斯求和公式📒 思路五:二分查找前面的思路都很简单,但时间复杂度都是O(N)。仔细观察我们发现因为缺失了数字,会造成二段性。参考代码:

2024-08-19 22:09:49 1639 27

空空如也

空空如也

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

TA关注的人

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