- 博客(17)
- 收藏
- 关注
原创 对类和对象的详细解析
先补充一个知识点:局部变量存储在栈区,全局变量和静态变量存储在静态区class Datepublic:_a = a;Date b(2);return 0;输出结果析构函数的时候为什么先输出~Date()->2呢?首先我们要知道a和b变量都是局部变量,都存储在栈区,栈区遵循后进先出的原则。
2023-09-19 21:55:41 593 10
原创 kmp算法
kmp算法是在一个字符串里面查找子串的位置,也叫做串的匹配模式。下面我们用AcWing里面的一道例题来讲解kmp算法这个题要做的就是s串里面寻找p串,并返回每一个子串在s里面的位置(位置从0开始)
2023-09-01 18:07:40 102 7
原创 离散化and区间合并
离散化的本质就是映射,将间隔很大的点,映射到相邻的数组元素中。就比如,在这个题目中,这些数字在数轴上面从-1e9到1e9,跨度很大,数量少,你可以把这些数字从左到右映射到alls数组里面。
2023-08-25 22:05:24 142 15
原创 AcWing 788 逆序对的数量
首先要知道每两个数直接只能构成1次或者0次逆序对,当你以a[i]为参考对象的时候,如果a[i]>a[j],并且a[i]>a[j+1](如果存在的话),那是不是a[mid+1....i]之间的数都会被算两遍,而且,因为a[i]>a[j],那a[i+1...mid]之间的数不也都大于a[j],那是不是也都大于a[mid+1...j],这样子会导致重复计算。对于一个a[j],在a[l...mid]中,只有a[i....mid]>a[j]核心思想和归并排序差不多,唯一的区别就是。
2023-08-18 18:07:43 46 3
原创 AcWing785 快速排序
时,停止遍历,我们需要把所有小于或等于x的数放到左边,把所有大于或等于x的数放到右边(注意:有可能左右两边同时存在等于x的数),这样子我们就把数组分成了两部分,继续递归处理左右两边的数组,当递归到子数组里面只存在一个数的时候,即。当执行到i=j的时候,a[i-1](如果存在的话)可能小于x,而a[j+1](如果存在的话)可能大于x,本来这个时候应该停止while循环,但是这里是i。原因:此时,i的取值范围是[l+1...r],而j的取值范围是[l...r],所以递归过程中不能出现j-1或者j+1的情况。
2023-08-18 12:29:04 93 3
原创 时间复杂度和空间复杂度
在这里的f1函数和f2函数中,调用完f1函数之后,变量b被销毁,再次调用f2函数时,还会使用之前的那块已经被释放的空间(空间可以重复利用)eg:F(n)=n*n+n*2+10,则它的时间复杂度是O(n*n);时间复杂度是用来衡量程序运行的快慢。定义:在算法中临时占用空间的大小。时间复杂度为O(2^n)时间复杂度为O(n)空间复杂度:O(n)
2023-08-17 16:04:38 44 3
原创 初识C语言中的一些难点(1)
C语言中定义数组的大小的时候必须使用常量这个时候n不可以改变,但是n的本质还是变量,所以在这里依然报错那么应该如何定义常量呢?方法一:使用#define来定义常量这里写SIZE和写10是等价的,此时的SIZE就是一个常量方法2:枚举常量。
2023-08-16 17:36:47 109 5
原创 Linux命令之unzip
unzip 参数 要解压缩到的文件夹路径(说白了就是你想把压缩包解压到哪里) 被解压的文件路径(压缩包在哪)(参数至少要带-d,这是解压到其他目录下的标志)unzip -q file.zip:如果有-q参数,则不显示解压信息,如果没有,则显示解压信息。unzip file.zip:解压当前压缩包到该目录下。-f:更新现有的文件(覆盖原有的文件),unzip执行后直接覆盖原有的文件。-n:解压缩时不要覆盖原有的文件。-t:检查压缩文件是否有损坏。
2023-08-14 23:18:39 242 3
原创 Linux下的基础指令(下)
显示自身用户的名称(在第一节课的时候我们就讲过用户名要设置成root,不然有可能连接不上云服务器)将一个文件移动到另一个地方,移动到另一个地方并且可以改变文件的名称在当前目录下mv一个文件将一个文件移动到另一个目录下cp命令和mv命令唯一的区别就是原有文件还存在mv工作原理:先拷贝,然后删除原有文件,最后粘贴到某个位置(并是否要改名)cp工作原理:先拷贝,然后粘贴到某个位置(并是否要改名)
2023-08-14 17:19:50 64 3
原创 Linux下的基础指令(上)
ls命令的后缀可以连用,比如ls -a -l或者写成ls -i -l。当然了,你也可以写成ls -al,这个命令就相当于ls -a -l。cd -:进入上一次的目录(有的童鞋可能因为进入了其他目录但是又不知道怎么回到刚刚的目录,这个时候这个命令就用的上啦)rm + 文件夹 -r:删除文件夹(每次删除前系统会问一下你是否真的要删除)rm + 文件夹 -rf:加一个f,表示强制删除,不需要询问(慎用)显示当前目录下所有文件和文件夹(包括隐藏的):显示当前目录下的文件和文件夹。:在当前目录下,创建一个文件夹。
2023-08-13 21:30:42 58 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人