自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++面向对象——继承学习笔记

【代码】C++面向对象——多态学习笔记。

2025-03-10 20:42:02 410

原创 C++运算符重载的学习笔记

3.在运算符重载中也可以发生函数重载。

2025-03-03 21:04:49 204

原创 力扣完全平方数279和力扣91解码方法的做题笔记

动态规划的状态定义dp[i]:表示前i个字符的解码方式数。例如,dp[1]表示前 1 个字符的解码方式数。dp[2]表示前 2 个字符的解码方式数。以此类推。

2025-03-02 21:33:00 1105

原创 2025.3.1有关c++类的学习

【代码】2025.3.1有关c++类的学习。

2025-03-01 21:46:34 435

原创 两道算法练习

以第。

2025-03-01 21:45:21 1074

原创 dfs的刷题小总结。

定义全局变量minSteps:用于记录最少按键次数。visited:用于记录已经访问过的楼层。修改dfs函数增加steps参数来记录当前按键次数。在进入新楼层之前,检查是否已经访问过。在到达目标楼层B时,更新minSteps。在每次递归调用dfs时,增加steps的值。初始化在main函数中,初始化minSteps。初始化visited数组。调用dfs从初始楼层A开始调用dfs,初始steps为0。

2025-01-25 19:52:53 1029

原创 基础算法——差分

可以发现,我们先对diff数组==[L,R] + v = d[L]+v,d[R+1]-v==处理,然后进行前缀和处理还原,就是在[l,r]区间进行+v的操作,那么我们在遇到这样的问题时,直接先把原数组的差分数组弄出来:diff[i] = arr[i] - arr[i - 1],然后进行处理,处理次数依情况而定,最后再前缀和还原,这样时间复杂度就是O(m+n),线性,大大优化。

2025-01-11 16:52:31 730

原创 基础算法——前缀和

我们要算区间和,并且还要根据k的值来确定区间每个元素要进行k次方的处理,如果我们根据输入的k是多少然后再对区间元素进行处理。因为我们每次访问,虽然输入的l,r不同,但每次都要从头开始算次方和前缀和,这样多次的重复运算,就使得时间复杂度很高。的数量是相等的,按照题目中平衡串的定义,这个子串就是一个平衡串。数组的计算方式,在代码中通过如下语句来构建。的数量是否相等,也就是它们的差值是否为。表示的是从字符串的开头(也就是。的数量差值,其实就等于从开头到。的数量相等,是一个平衡串。例如,还是以上面的字符串。

2025-01-08 11:36:56 799

原创 进制转换——基础算法

将每一位乘以对应的十的次方数,再进行相加。第一步是把N进制数的每一位存入数组arr中。然后初始化十进制数x为0x 不断的乘以N,再加上N进制数的每一位数就可以得到十进制数字N了。

2025-01-05 16:03:54 348

原创 双指针的学习笔记

由于数字都是正数特性。当慢指针(左指针)移动的时候,区间和一定小,区间长也变小。当快指针(右指针)移动时,区间和变大,区间长变大。数组或者是字符串中,用来遍历。最美区间:输入两个数,n,s。找出大与等于s的最短区间。给出的样例都是升序的。

2024-12-31 10:18:19 418

原创 PTA数据结构编程题7-51,52,53

这道题目总体思路是先遍历两个链表,然后处理剩余数组的元素,最后再把处理结果放入第三个数组中输出即可。如何遍历两个数组?用双指针i,j把小的元素先放入数组中,如果不等长,则是短的链表先走完,此时,同时遍历两个数组这件事情结束。然后是处理剩余的元素,为什么剩余了?因为长链表还没有走完但是短链表走完了,所以还剩下一些长链表里面的元素没有被处理。长的链表此时双指针的下标一定还小于数组的大小。由于是非降序数组,则是挨个放入,恰好从小到大排列。

2024-12-27 21:47:14 440

原创 PTA数据结构编程题7-1最大子列和问题

给定K个整数组成的序列{ N1​, N2​, …, NK​},“连续子列”被定义为{ Ni​, Ni+1​, …, Nj​},其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。现要求你编写程序,计算给定整数序列的最大子列和。本题旨在测试各种不同的算法在各种数据情况下的表现。

2024-12-26 16:10:02 766

原创 PTA数据结构练习题6-6带头结点的链式表操作集

创建一个结点作为头结点,将头结点指向的下一个结点位置的指针初始化为空指针。

2024-12-25 21:05:57 333

原创 PTA数据结构题目:链表操作集合

P)为什么我写成= NULL)的时候会发生段错误,这两种写法逻辑上不是一样的吗?

2024-12-24 21:10:09 316

原创 链表刷题笔记(题解出自灵茶山)

即两个指针初始化为头节点,都从头节点出发。先让快的指针先走n次,如此就跳过了n个结点。但是判断条件要注意。一个乌龟一个兔子,永远不可能相遇,当它们相遇的时候,就说明这是一个环形链表。然后,慢指针与快指针再同时往后移动,此时就能发现,慢指针指向的位置就是倒数第n个结点的前一个结点。这里还没有结束,如果链表只有一个结点。那么我们需要创建一个哨兵结点,在前面,这样就可以解决了。难点在于怎么找到要反转的头节点的前面一个结点。就是将反转与寻找链表的中间结点结合起来。我写的时候错写此条件,会造成错误。

2024-12-10 19:29:19 241

原创 题目:苹果P1580的做题笔记

得到k的值后,将第一天到某一天的累积的苹果数存起来,直到这个数字>=k值。然后运用二分查找的思维去寻找匹配的下标。

2024-12-05 10:30:09 367

原创 PAT乙级1003我要通过的做题笔记

得到“答案正确”的条件是:字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A 组成的字符串。根据题目中的规则,如果aPbTc是正确的,那么aPbATca也是正确的。

2024-12-03 11:30:30 1039

原创 C转C++的学习笔记

/宏定义//{//看作宏定义//不可改变//////}

2024-12-01 22:01:19 468

原创 C语言模拟实现简单链表的复盘

我在实现时,错误讲指针先赋值为NULL,这样的话会造成野指针错误。不是将指针赋值给一个变量然后++,是将指针赋值为下一个节点的指针。sizeof(struct LNode)更加严谨。头节点与其他节点的处理方式不同。

2024-11-27 21:16:25 495

原创 数据结构单链表,顺序表,广义表,多重链表,堆栈的学习

比如一个多项式,主要包括x的系数,x的指数,那么可以创建一个一维数组来存储它的系数和指数,用数组下标来表示。它的系数可以用数组下标对应的数组元素来储存。可是这样储存会浪费空间所以采用单链表形式来存储。即创建一个指针变量,存储元素地址与下一个元素的地址,这样就不会造成太多空间的浪费。

2024-11-26 21:59:32 194

原创 数据结构第一讲

打印1到N之间的正整数有递归和循环两种方法实现。但是在数字变大后,递归的方法会导致内存占用过多而崩溃。而循环则不会。

2024-11-23 21:36:27 318

原创 文件的读写

FILE* stdin - 标准输入流(键盘)FILE* stdout - 标准输出流(屏幕)FILE* stderr - 标准错误流(屏幕)任何一个C程序,只要运行起来就会默认打开三个流。

2024-11-20 21:04:59 225

原创 同向双指针

力扣209枚举右下标同时右移左下标以下是对这段代码的解析:一、宏定义部分二、函数部分

2024-11-19 21:34:55 416

原创 相向双指针的两数之和,三数之和

returnSize是一个指向整数的指针。这个指针的作用是让函数告知调用者返回结果的大小。在这个函数中,函数将*returnSize设置为2,表示返回的结果数组(由twoSum函数返回的数组)的长度是2,其中包含了找到的两个数在numbers数组中的下标(从1开始)。p为一个储存两个整型的数组的首元素的指针。返回这个指针,就可以通过它找到我们存储在其中的两个下标。numberSize代表数组元素的个数用于确定双指针的取值范围。numbers指针代表数组首元素的地址,target代表我们要寻找的两数的和。

2024-11-19 14:42:53 388

原创 动态内存管理

一种是在旧地址后面拿空间,另一种是在堆区重新开辟。//当程序退出的时候,系统会自动回收内存空间的。//并不是说内存空间就不回收。

2024-11-17 20:22:12 260

原创 枚举,联合

define 定义的量在调试时和肉眼看到的代码不一样struct stint a;char c;//4char c;//共用int main()union Un u;u.c = 0x00;//?return 0;

2024-11-16 21:37:09 165

原创 qsort函数的模拟实现

int(* cmp)(const void* e1, const void* e2)//函数指针-比较函数。void qsort(void* base,//你要排序的数据的起始位置。size_t width,//待排序的数据元素的大小-单位是字节。size_t num,//待排序的数据元素的个数。

2024-11-16 19:34:27 175

原创 结构体的深入学习:内存对齐等

【代码】结构体的深入学习:内存对齐等。

2024-11-15 22:00:07 258

原创 简单通讯录的实现

assert(pc);printf("无对象可查找\n");return;printf("请输入要查找对象的名字");//1.查找printf("你输入的用户不存在\n");return;//2.打印printf("%-5s\t%-5s\t%-20s\t%-20s\t%-10s\n", "姓名", "年龄", "性别", "电话", "地址");

2024-11-15 21:45:10 209

原创 买东西打折问题,整型提升练习,说谎问题,杨辉三角问题,菱形图案问题

【代码】买东西打折问题,整型提升练习,说谎问题,杨辉三角问题,菱形图案问题。

2024-11-11 21:56:20 273

原创 memmove函数的模拟实现,memset函数

void* my_memmove(void*dest, const void* src, size_t num){ assert(dest&&src); void* ret = dest; if (dest < src) { //前->后 while (num--) { *(char*)dest = *(char*)src; dest = (char*)dest + 1; src = (char*)src + 1; } } else

2024-11-10 21:26:38 177

原创 strnlen,strncmp,strncat,strstr,strtok,memcpy函数的用法,strstr函数的模拟,memcpy函数的模拟

括号内第一个为目标地址,第二个为拷贝资源,第三个为拷贝个数括号内第一个为目标地址第二个为拷贝内容的地址,第三个为拷贝个数。注意是从目标字符串的\0开始,拷贝后结尾会自带\0模拟时要注意第二种情况,较复杂。sep里面放分割的符号,如果传参时第一个内容为NULL,那么从上次分割处开始memcpy函数对于自身的拷贝存在缺陷。

2024-11-09 21:44:39 199

原创 strlen函数,strcmp函数,strcat的模拟实现

即遍历字符串,直到遇到’\0’为止。

2024-11-08 20:27:13 183

原创 2024/11/06c语言笔试题练习

strlen是库函数,只针对字符串,是求字符串长度的,关注的是字符串的\0,计算的是\0之前出现的字符的个数sizeof是操作符只要想计算空间大小都可以用sizeof来算。只要想计算空间大小都可以用sizeof来算strlen函数所期望的const char*类型的指针针的下一个位置,不是指向字符串的指针,这是错误用法,strlen的结果是未定义的。对第二行地址解引用,就是对一维数组解引用,访问整个数组sizeof(

2024-11-06 21:52:59 234

原创 2024/11/4指针数组,数组指针,函数指针

/&数组名 - 取出的是数组的地址//数组指针//&函数名 - 取出的就是函数的地址?//确实是函数的地址//每个函数都有地址//那么函数名是不是代表函数的地址呢?//对于函数来说,&函数名,函数名都是函数的地址。//函数指针-指向函数//调用函数,通过函数指针return 0;

2024-11-04 22:01:23 188

原创 2024/11/03

在sizeof和&(取地址)中,数组名不再是首元素地址。存放指针变量地址的数组。

2024-11-03 21:25:03 102

原创 2024/10/31C语言

思路:可以将字符串放到char类型数组中,然后定义下标0为left,right为最后一个元素下标,可借助sizeof来计算。

2024-10-31 22:00:06 132

原创 2024/10/29调试

跳到断点处不可跳过输入是跳到逻辑上的下一个断点,放在循环中只是跳到下一次循环而不是下一个循环。

2024-10-29 21:55:30 288

原创 2024/10/28

逗号表达式,以最后一个表达式为准,前面的也执行但不赋值到b。

2024-10-28 21:48:49 147

原创 2024/10/27结构体

float f;

2024-10-27 11:49:06 133

空空如也

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

TA关注的人

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