自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux 动静态库

库其实是给我们提供方法的实现,如上面的对于printf函数的实现就是在库中实现的,而这个库也就是c标准库,本质也是文件,也有对应的路径。方法的实现就在库当中,库就是将源文件(.c)经过一定的翻译,然后打包,封装然后只提供一个所需的文件,而将其他源文件隐藏。编译器使用静态库进行静态链接时,会将静态库的所有方法实现拷贝到可执行程序中,使该程序不再依赖静态库。由于gcc编译时默认使用的是动态库,完成的是动态链接,如要实现静态链接就要添加-static。1.如果我们没有静态库,但就要-static ,是不行的。

2024-07-24 20:47:01 502

原创 进程程序替换

只有出错的返回值而没有成功的返回值。

2024-06-09 20:08:43 334

原创 C++ 继承

继承是面向对象程序设计使代码可以复用的重要手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称为派生类或者子类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。public:protected:// 姓名// 年龄protected:int _stuid;// 学号protected:int _jobid;// 工号int main()Student s;Teacher t;s.Print();t.Print();

2024-03-20 16:28:13 765

原创 Leet code 974 和可被K整除的子数组

这里可以看出余数相同一定之间有解必须存余数的绝对值。

2024-03-20 00:29:26 409

原创 Leet code 238 除自身以外的数组的乘积

从后向前遍历然后创建ret数组 每个位置遍历一遍 ret[i] = dp[i] * bp[i]

2024-03-19 23:34:23 306

原创 牛客DP34 前缀和

【代码】牛客DP34 前缀和。

2024-03-18 21:53:20 425

原创 Leet code 376 摆动序列

起点结束点和 前后位置有落差的转折点。等于0是因为要把起始点算上。

2024-03-17 23:37:22 463

原创 Leet code 91 解码方法

相当于在i-2位置加上了一段所以次数和dp[i-2]相同。相当于在d[i-1]上接了一段 但次数肯定是没变化的。组合解码需要的范围是10-26 不然就是失败。再考虑i位置和i-1位置能否组合解码。

2024-03-17 00:58:43 356

原创 Leet code 179 最大数

【代码】Leet code 179 最大数。

2024-03-16 23:03:28 810

原创 Leet code 34 在排序数组中查找元素的第一个和最后一个位置

更新 left left=mid+1。

2024-03-16 17:32:53 512

原创 Leet code 438 找到字符串中所有字母异位词

三步走 进窗口 判断 出窗口 然后更新结果 定义两个hash表在第一个表中存 p的有效字符 比如 abc a一个 b一个 c一个 这样就存在三个有效字符 在第二个hash表中进行滑动窗口的运行 定义一个常量count 如果滑动窗口中有效字符存在一个就 +1 第二个hash表中 进窗口时候怎么才能算有效字符呢? hash2[s[right] -'a'] <=hash1[s[right] -'a'] 这个时候 count++这个条件就是滑动窗口中比如a 有 1个 或者2个 3个等

2024-03-16 00:11:34 565

原创 Leet code 904 水果成篮

【代码】Leet code 904 水果成篮。

2024-03-15 19:59:21 462

原创 Leet code 1658 将x减到0的最小操作数

【代码】Leet code 1658 将x减到0的最小操作数。

2024-03-15 18:30:02 386 1

原创 Leet code 746 使用最小花费爬楼梯

首先理解题意:什么是到达楼顶,这楼顶是指数组cost最后一个元素的下一个位置所以需要创建一个元素个数为cost.size()+1的dp数组 然后记录到达每一个位置的最小花费下标0 和 1位置是起点 到达 i 位置的最小花费这个i需要从下标为2开始算到达i位置的最小花费方程 dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2])dp[0] 和 dp[1]默认为0 因为是0 1下标位置是起点之前没有任何叠加最后返回结果 dp[ cost.size() ]

2024-03-14 23:29:25 483

原创 Leet code 三步问题

注意:后面值会过大 需要在相加之后就模运算1000000007。5级台阶 13种方法。先观察 1级台阶 1种方法。

2024-03-14 21:59:07 395

原创 Leet code 15 三数之和

【代码】Leet code 15 三数之和。

2024-03-06 15:57:40 347

原创 Leet code 611 有效三角形个数

如果较小的两边之和大于第三边那么该三角形一定成立。

2024-03-05 20:32:53 364

原创 Leet code 1089 复写0

比如示例1中答案的最后一个数是4定义两个指针 dest 和 curdest初始位置是-1 cur初始位置为 0如果arr[cur]为非零元素 dest位置+1如果arr[cur]为零元素 dest位置+2直到cur<arr.size() 或者 dest>=arr.size()-1cur就是最后一个元素位置。

2024-03-05 16:33:22 370

原创 C++ list 详解

C++ 中的 list 是一种双向链表,它提供了许多有用的操作,如插入、删除、查找和修改元素等。在 C++ 中,list 是一个模板类,用于存储同类型的元素。:可以使用构造函数创建和初始化 list 对象。方法删除指定位置的元素。方法查找指定位置的元素。的末尾或开头添加元素。是一个模板参数,用于指定。:可以使用迭代器遍历。

2023-12-03 19:37:20 431

原创 C++ String 详解

string。

2023-12-03 19:22:13 199

原创 C++ priority_queue

Priority Queue(优先队列)是一种常用的数据结构,它基于每个元素关联的优先级而组织元素,确保高优先级的元素先被处理。在实际应用中,优先队列常用于解决与优先级相关的问题,如任务调度、图算法等。如果要使用自定义的比较函数来定义优先级,可以通过提供一个自定义的比较函数或使用 lambda 表达式。// 自定义比较函数// 最小堆return 0;

2023-12-03 19:10:31 124

原创 C++ vector基本用法

在C++中,vector是一种动态数组,可以根据需要自动增长和缩减其中,type表示元素类型,name是vector的名称。初始化vector的方法很简单,只需要在括号中提供一些初始化值即可:在上述代码中,我们定义了一个名为v的vector,并初始化了它为包含5个整数的数组。

2023-12-03 18:50:36 273

原创 六大算法之 插入、希尔、选择、堆排序、快速排序、计数排序

预排序。

2023-10-23 18:15:04 69

原创 C++ string常见用法

创建一个包含n个元素的string对象,每个元素都初始化为字符c。

2023-10-20 09:24:19 43

原创 Linux 中的yum命令讲解

yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

2023-10-18 21:21:49 209

原创 二叉树之前序中序后序遍历与层序遍历

遍历是二叉树的最重要的操作之一,是二叉树进行其他运算的基础,本文将详细讲解遍历二叉树的常用的四种方式。

2023-10-17 11:05:37 29

原创 C++ static成员、友元,内部类

定义时不添加static关键字,类中只是声明3.类静态成员即可用。

2023-10-12 21:27:13 40

原创 C++ 之初始化列表

那有些同学就要有疑问了,这不是吃饱了没事找事吗?每个成员变量在初始化列表中。且该类没有默认构造函数时。初始化只能初始化一次。

2023-10-12 20:26:40 35

原创 C++ 构造函数和内联函数

一个特殊的成员函数名字与类名相同,创建类类型对象时由编译器自动调用并且在对象整个生命周期内只调用一次构造函数的功能是用来完成对象的初始化的。

2023-09-15 22:38:56 154

原创 数据结构之队列(C语言)

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(head)进行删除操作,而在表的后端(tail)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队尾进入队头出列typedef struct QListNode //链式结构,表示队列//储存下一个结点地址//储存数据}QNode;typedef struct Queue //队列结构//储存头节点地址//储存尾结点地址int size;}Queue;

2023-09-15 21:03:02 54

原创 数据结构之栈(C语言)

小干货

2023-09-15 20:48:25 34

原创 C++入门篇

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字然后接一对{}即可,{}中即为命名空间的成员。函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。

2023-09-10 13:42:02 41

原创 【数据结构】之带头双向循环链表(C语言)

C语言描述 数据结构之中的双向链表

2023-05-24 16:27:22 73

原创 【C语言】循环语句 while、for、do-while

何为循环?。接下来我将对其三种循环做出解释。上述三种循环语句的使用频率从大到小依次是:结束语:如果觉得up主写的不错,不要忘了素质三连哦。

2023-04-23 16:21:26 484 4

原创 【数据结构】顺序表之增删查改操作(C语言)

目录1.头部插入(SLpushfront)2.尾部删除(SLpopback)3.头部删除(SLpopfront)4.指定位置插入数据(SListInsert)5.指定位置删除数据(SLdelete)6.查找数据(SLFind)7.修改数据(SLModify)插入前我们调用容量检测函数对容量进行检测,函数内部已经写好了增容的程序。 那么插入数据就要挪动数据,尾插是从前向后挪动数据,那么头部插入就是从后向前挪动数据,也就是开辟空间后,将新添加的数据从顺序表头部向前移动。我们直接将size所再的位置减1即可

2023-04-22 21:10:40 752 1

原创 斐波那契数列的计算

【代码】斐波那契数列的计算。

2023-04-03 16:15:21 145 1

原创 C语言:memcpy和memmove的模拟实现

memcpy和memmove的模拟实现

2023-03-27 19:28:08 78

原创 C语言对strlen、strcpy和strcat的模拟实现

strlen、strcpy和strcat的模拟实现

2023-03-15 00:10:17 115 3

原创 模仿qsort的功能实现一个通用的冒泡排序

qsort模拟实现

2023-03-12 23:52:33 116

原创 C语言 完成字母大小写转换

字符大小写转化

2023-03-10 00:43:13 51

空空如也

空空如也

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

TA关注的人

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