自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CPP_类和对象

*默认构造函数(无参构造函数,全缺省构造函数,没有构造函数时编译器默认生成的构造函数)**最多只能有一个,也可以没有(如果没有,那就不能用默认方式初始化)如果当自己写了别的不是默认构造函数形式的构造函数,那就需要自己在写一个默认构造函数。某一个类的时候,才会为类里面的成员变量开辟空间(即它的定义)(也就相当于类其实是一种设计,并没有实际的东西,只有实例化之后,才有这种设计对应的实例)其实对于实例化对象来说,虽然成员函数是共用的,但每个实例调用时都是使用自己的成员变量的值,

2025-04-23 21:15:29 622

原创 各种排序算法

排序

2025-04-16 19:02:27 962

原创 3/20(week4)

【代码】3/20(week4)

2025-03-20 14:37:41 262

原创 顺序表的实现

【代码】顺序表的实现。

2025-03-15 10:10:41 181

原创 c语言笔记week3

补码为11111111111111111111111111111111.对于char类型的变量想要接受一个int类型数据的值,只能从低往高截取补码的8位,所以a,b,c里面放的值均为11111111.在打印的时候,因为是以**%d的形式打印的(以10进制的形式打印有符号整数)其中num是要拷贝的字节数,只关注要拷贝去哪里,从哪里拷贝,拷贝多少字节,不在乎内存里具体存放的是什么数据,且dest和sourcce指向的内存不能有任何重叠。因为它是按字节赋值的,对于其他值,可能无法得到预期的结果。

2025-03-13 11:10:06 632

原创 C语言学习笔记(week2)2-24 3-2

如果待切割的字符串里有多个分割符,则调用一次该函数,会将从左边数第一个分隔符变成’\0’,并且每一次调用该函数会存下来这次操作到的位置,下一次在调用的时候,会直接从这个位置开始向后寻找下一个分隔符。(对于无符号整数来说,是没有负数的,如果一个负数被转变为无符号整数,会直接将这个负数的补码看作一个无符号整数,也就是会变成一个很大的正数(因为负数首位符号位是1))在传递时,如果传递的是“abc”,直接传递这样的常量字符串,也是可以使用char*的指针接收的。比较的不是长度,是对应字符的ASCII码的大小。

2025-03-06 15:33:16 977

原创 2025/2/17--2/23学习笔记(week1)_C语言

C语言学习笔记

2025-02-24 18:40:12 711

原创 刷题分享12_5

【代码】刷题分享12_5。

2024-12-05 16:37:35 299

原创 刷题分享12_3

【代码】刷题分享12_3。

2024-12-03 12:28:16 377

原创 刷题分享12-2日

2.(力扣93)这道题的核心是掌握在递归调用里,引用的特殊性,每一层递归里的s在逻辑上可以看作是独立的个体,虽然名字相同,但它们有着各自独立的 “生命周期” 和状态管理,res里存储的是之前各层递归结束那一刻对应的s的状态,后续递归中对当前层s的改动不会传导过去。1.(力扣131)这是一道分割子串的问题,其核心在于理解清除startindex即为当前切割线,而每一层对应的startindex-I这个区间,其实就是当前分割出来的子串。

2024-12-02 20:26:07 436

原创 刷题分享12_1

1.(力扣39)这是一道回溯算法相关题目,因为每一个元素可以多次使用,所以更新时startindex应该更新为i而不是i+1。3.(力扣257)这是一道求二叉树的全部路径的题目,也巧妙的运用了回溯的思想,整体不难,但一定要知道to_string的用法。

2024-12-01 21:26:12 415

原创 刷题分享11_30

1.(力扣216)这是一道回溯算法的经典题目。在循环内部,一般的逻辑是(单层操作 + 递归 + 回溯),其实回溯的本质就是在递归处理完该层向下的层后,将该层恢复成一开始达到该层时的状态,以便向上返回进行别的分支。所以也叫(恢复现场)2.(力扣17)首先该题要先使用一个数组,来存放对应位置上的字符串,另外,该题中有一个特殊的参数index,是用来标记现在已经处理到了输入字符串中的哪一个,所以结束条件是(index==digits.size())变量digit是用来存放当前这一层所要操作的字符串的。

2024-11-30 21:07:38 782

原创 刷题分享11_28

此题还有一个核心在于想明白对于一个集合,如果它里面包含了K对情侣中的人,那么该集合必须要交换K-1次(相当于每交换一次,可以成全一对情侣,最后一次交换可以将最后两对情侣一起成全,所以是K-1次),res其实就是各个集合交换次数之和。1.(力扣15)这是一道求三数之和的问题,如果使用哈希表的方法了话,十分难实现去重的操作,所以我们可以考虑将问题拆分,即先用一个for循环遍历数组,在每一层遍历内部(相当于确定下来第一个数),使用双指针的方法,这样利用指针++或--的操作,可以很方便的实现去重的操作。

2024-11-28 13:23:54 626

原创 刷题分享11_27

3.这是一道求四个数之和等于0的问题,将其分为两两一组,运用哈希表的知识,可以将该题的时间复杂度变成O(n*n),同时,为了方便使用map的find,我们要将结果存入key里,将出现的次数存入value里。2.这是一道大整数除法,核心在于要从大整数的高位向低位进行运算,每一次的余数还要*10加上下一位,最后一定记得去除前导0。1.这是一道大整数乘法,核心在于求出每一位与那个小整数的乘积,最后一定要记得让最后的进位数也变成0。

2024-11-27 20:14:06 381

原创 刷题分享11_26

1.这是一道哈希表的问题,核心在于将数存入key 里,将下标存入val 里。

2024-11-26 22:03:54 277

原创 刷题分享_11_25

对于求恰有k个,这个问题十分不好求,所以我们可以转变思路,先实现一个函数 F(K),这个函数可以求出来所含元素小于等于k个的子数组的数量,那么结果就是 F(K) - F(K-1)。具体思路:相当于每一次循环内部固定窗口的右边界,然后看窗口左边界,当左边界也符合时,在窗口内所有以右边界为尾巴的子数组均符合要求,因为F(K)求的是种类不超过K的长度包括1,2,…3.(力扣395)这是一道求 有k个重复字符 的最长子串的问题(即如果结果里多了一种字母,那么该字母最少出现k次,可能不连续)。

2024-11-25 21:41:22 1235

原创 刷题分享11_24

【代码】刷题分享11_24。

2024-11-24 20:23:37 235

原创 刷题分享11_23

1.(力扣242)这是一道hash 表的问题,其实就是开辟一个额外的名单,遍历第一个字符串来存放每个字母出现的次数,然后遍历第二个数组为出现过的字母在名单上消去名字,最后名单上只要有数字不为0,则说明不对,只有所有字母的剩余次数均达到0次,才能说明两个字符串中所含字母一样。3.(力扣110)这是一道判断是否为平衡子树的问题,其实本质上是求最大深度的变形。2.(力扣222)这是一道求二叉树的节点个数的问题,使用后序遍历,这样才可以将下面子树的高度返回给上面的节点,进而最后返回给根节点。

2024-11-23 22:04:41 210

原创 刷题分享11_22

核心思路:窗口里维持的一直都是有可能变成最大值的元素,如果一个值没有可能为最大值,就将它从右侧弹出。然后扩窗口,将最左侧的值放入结果数组,然后判断最左侧的值是否过期,如果过期就从左侧走,然后窗口缩小。3.(力扣111)这是一道求二叉树最小深度的问题,其实求深度一个使用前序遍历,但其实可以将问题转化为求最小高度,进而可以用后序遍历。并不能将其简单的以为是求最大深度里将取最大变成取最小,因为这样会将左(右)子树整个为空的情况错误处理,所以在它前面应应该加上判断。所以我们想到用单调队列来实现。

2024-11-22 20:16:39 845

原创 刷题分享11_7

2.寻找最小可用ID_2,先快排后,扫描数组。1.寻找最小可用ID_1,开辟一个额外空间。

2024-11-07 21:12:37 217

原创 刷题分享11_6

1.水王数的查找,主要用到一个抵消的思想。还有水王数的进阶,如果一个数出现的次数正好是数组长度的一半,那么则需要加入一个计数器,来判断水王到底是aim值还是arr[n-1]3.二维前缀和,q[0][0],第0行,第0列都需要特殊处理(对于第0行,第0列的处理与处理一维前缀和一样)2.一维前缀和,一定要特别注意q[0]的特殊处理。

2024-11-06 21:15:16 183

原创 刷题分享11_5

1将奇数放在左边,偶数放在右边。2.找到一个无序数组里第k大的数。运用了递归以及快排的思想。

2024-11-05 21:48:51 302

原创 刷题分享11_4

2.模拟pow ()函数,时间复杂度小于O(n),采取指数级向上乘。1.最长递增数列(用双指针)一快一慢。3.实现单链表反转,连续采用头插法。

2024-11-04 20:02:41 278

原创 刷题分享11_2

【代码】刷题分享11_2。

2024-11-02 21:05:11 327

原创 刷题分享10_30

后插法建立数组(建立一个指针,始终指向最后一个节点,然后循环对其进行后插操作)*前插法建立数组(相当于循环对头结点进行后插操作)*按位置前,后插入节点(均可以转化为后插)*删除节点(相当于寻找+删除)

2024-10-31 20:27:58 250

原创 刷题分享10_30

【代码】刷题分享10_30。

2024-10-30 20:47:55 247

原创 算法刷题10_29

2.打印一个数组中的i-j个数。6.用递归实现插入排序。

2024-10-29 22:00:13 247

原创 刷题分享10_26

1.二分查找(必须是有序数列)

2024-10-26 20:50:18 263

原创 实验课作业

【代码】实验课作业。

2024-10-25 19:29:19 169

原创 刷题分享10-23

1在一个字符串中删除一个特定的字符串。2向左偏转一个字符串。

2024-10-23 19:51:40 202

原创 刷题分享10_21

1.求一个整数各位数字之和,并以特定方式打印。2寻找带有目标字母的字符串。6.寻找出现次数最多的元素。5.寻找矩阵中局部最大项。7.在数组里寻找指定元素。8.以指定方式打印三位数。

2024-10-21 20:26:17 243

原创 刷题分享10_19

1.计算特殊数列的和。

2024-10-19 20:48:25 191

原创 刷题分享10_17

【代码】刷题分享10_17。

2024-10-17 21:27:24 226

原创 刷题分享10_

1.产生所有有可能的三位数。2.判断是否为上三角形。

2024-10-14 20:57:52 253

原创 刷题分享10_13

2.顺时针旋转一个矩阵(数组)

2024-10-13 15:26:51 205

原创 刷题分享10_11

1.判断各种元素个数,并判断是否为回文数。4实现n个数的全排列。

2024-10-11 20:36:12 159

原创 刷题分享10_10

3.将两个数组按从小到大的顺序合成一个数组。2.计算梯形木头堆中木头个数。

2024-10-10 18:04:30 217

原创 刷题注意点

1.在比较三个数的大小时,写成if语句会很麻烦,这时我们可以巧用运算符,写成如下这样的形式。

2024-10-08 22:13:40 269

原创 刷题的注意点 2024_10_7

在这道题里,最容易出错的就是在给a(x,y)赋值的时候,应该写为1.0*(R[x-1]+C[y-1])/2,将其转化为浮点数,保留它的精度。在这道题里,要注意使用long long int 来存储数据,防止造成溢出。所有题的代码统一放在最后。

2024-10-07 19:36:15 311

原创 刷题的注意点 2024_9_18

1.在使用循环想连续多行输入时(如图),需要注意,当输入完一个字符后按下回车时,缓冲区会一下存入两个字符(getchar(),该函数可以读取缓冲区第一个字符,并清除它。,而非你在下一行自己输入的数据。如果想避免这种情况,可以使用。1.你自己希望有的字符 2.换行符。),在进行完第一次循环后,系统会。自动将\n作为下一次循环的输入值。(比如在这个大小写转换的代码里)

2024-09-18 20:40:09 289

空空如也

空空如也

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

TA关注的人

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