- 博客(22)
- 收藏
- 关注
原创 字符串数组的赋值问题
串的存储形式主要有顺序存储结构和链式存储结构两种。顺序存储结构包括定长顺序存储和堆分配存储,其中堆分配存储因其灵活性而更常用。链式存储结构则适用于需要频繁插入或删除字符的场景,但由于空间利用率和操作的复杂性,其使用相对较少。在某些高级编程语言中,字符串还可能采用特殊的存储形式,如Java的String类。参考4条信息源串一般采用什么存储形式文件图片指令启。
2024-07-23 09:04:36 4613
原创 c++续集
1.在使用时,可以像普通函数一样调用,可以有参数,可以有返回值。2.函数对象可以有自己的状态,超出普通函数的概念。形参有一个的是一元谓词,有两个的是二元谓词。3.函数对象可以作为参数传递。返回值类型是bool 类型。
2024-07-20 19:41:01 211
原创 c++的初识
常量指针,该指针p 所指向的内容不能更改,不能通过 *p 更改值,指针的指向可以更改。指针常量,指针所指的地址不能更改,但可以通过 *p 更改指针所指向的值。如果某个位置参数有默认值,那么后面的都要有默认值,函数声明有默认值,函数实现就不能有默认值。栈区:局部变量(不能返回局部变量的地址,因为栈区的数据由函数执行完后自动释放)全局区:全局变量,静态变量,常量区,字符串常量,其他常量。如果有自己传入的数据,就用自己的,没有的话就用默认的。例如:*p = 20 是错误的,而p=&a;不能返回局部变量的引用;
2024-07-10 22:43:01 243
原创 关于html
腾讯</a>超链接 <a href="网址"> <img src=" "/> </a>点击图片跳转。<tr> <th> </th> </tr>表头单元格(加粗居中显示)内部链接<a href="链接"> 腾讯
2024-06-19 20:02:49 307
原创 乱七八糟。。。
INT_MAX为 2^31-1 ,即 2147483647;INT_MIN为 -2^31 , 即 2147483648;0x3f3f3f3f是1061109567。
2024-06-04 21:13:52 133
原创 关于linux 一些
目录的权限和目录里面文件的权限是两码事,如果该目录不可执行,那么我们无法进入该目录,如果该目录不可读,我们也无法进入,若只是不可写,那么我们可以进入该目录,但是无法在该目录中创建文件。目录的可读写与文件无关,若文件可读写,目录只可读,那么目录的可读写性与文件无关,即不可写的目录中可读写的文件依旧可读写。-rwx rwx rwx 第一部分是文件拥有者的权限,第二部分是文件所属组的权限,第三部分是其他用户的权限。直接在该目录的父目录下 ll 即可。对于文件,默认权限是666,对于目录,默认权限是777.
2024-05-27 20:09:20 167
原创 c语言延申
程序会输出57,这是因为12345转化为16进制后为0x3039,只取后面两位39,变为十进制后就是57。相当于printf(" %6d ",456789 );静态本地变量在空间范围上是本地变量(只能在包含他的函数里引用),在时间上是全局变量,(只会被初始化一次)例如。此时的num 可以是任何进制的数,然后输出对应的10进制数。.h文件是头文件,内含函数声明、宏定义、结构体定义等内容。
2024-05-12 14:47:23 146 1
原创 贪心算法习题
逆向遍历时,假设数组最后一个瓜子数已经确定,从倒数第二个瓜子数开始遍历,若当前的比前面的大,那么我们ans [ i - 1 ]= max( ans [ i - 1 ] ,ans[ i ] + 1),如果直接像正向遍历那样让他取后者,那我们就不能保证当前元素与后面元素的关系。正向遍历时,如果当前的比前面的高,当前瓜子数就等于前面的加1,如果相同,就等于前面的。也就是说正向遍历保证的是当前的与前面元素的关系,而逆向遍历保证了当前元素与后面元素及前面元素的关系。MT2090竹鼠发瓜子。
2024-05-12 13:54:58 147 1
原创 switch语句中default
分析这个程序,n 进入switch 时值为8,但switch 的case取决于switch()中的表达式的值,因此,此时表达式的值仍为9,但没有这种情况,因此,执行 default 并且n 的值又变回9。swicth 语句中的default 的位置对程序是没有影响的,因为swicth 语句中会把case语句先执行完再执行default;意思是先计算表达式的值,再逐个和case 后的常量表达式比较,若不等则继续往下比较,若一直不等,则执行default后的语句;case 常量表达式n: 语句n;
2024-05-10 18:25:50 839
原创 关于BFS(广度优先搜索)
我们可以发现这个题用DFS好像也可以写,但是对比DFS,BFS的时间复杂度要远小于DFS,但空间复杂度很大。分析题目,我们可以找到得出结果的过程。准备:方向数组,队列,距离数组,整体思路:首先我们需要把距离数组初始化为-1,用到memset函数,头文件是#include<string.h>。定义BFS函数,将初始位置传过去,将该位置坐标入队,距离设为零。进入循环,记录下队头元素,在该座标的前提下进行位置变化,如果符合要求,就将变化过的位置入队,然后将变化前的坐标的距离数组加一。
2024-04-29 14:01:50 200
原创 dfs算法
有一个小巧思,就是我们可以从火星人的数字开始排列,因为全排列都是字典序,即当没有方案被排出时,我们每一个位置都从火星人的数字开始,当有方案时,就说明你的数组已经开始大于火星人的数组了,因此我们不必再从火星人的序列开始。不然,只会输出一种结果,虽然 for 会进行 n 轮,但是,没有把 flag [ i ] 重新赋值为0,所以,在第一轮循环时, flag[ i ] , i从1到n 都已经被赋值为1,因此 if 中的语句也就不会进行了。因此我们可以判断是全排列问题。有固定的位置,每个位置有两种选择,选或不选,
2024-03-31 20:18:42 399 1
原创 关于背包问题
由递推公式m[i][j]=max(m[i-1][j],m[i-1][j-v[i]]+w[i])我们可以看出,m[i]只与m[i-1]有关,意思就是,如果可以把i-1那一层拷贝到第i层,我们就可以不用再考虑二维数组。m[i-1][j-v[i]]:首先j-v[i]表示先拿背包总体积减去当前物品的体积,所剩下可以容纳前i-1个物品的体积,那么m[i-1][j-v[i]]就表示当前物品加上前i-1个物品中的某个物品的最大价值。若正向循环m[j]=max(m[j],m[j-w[i]]+val[i])
2024-03-17 18:10:00 1531 1
原创 差分与前缀和
要注意几个点:一般情况下用累加法即可,可要考虑几种特殊情况,第一个元素(i=0,j=0),要换行时(i=0),某一行的首元素(j=0);如果要求a[1][1]的前缀和sum[1][1]=红色部分+蓝色部分-重复部分+a[1][1];i>0前某项的和等于从零开始到它前一项的累加和。(这里的m,n均指数组下标)sum蓝色=sum[2][2]-黄色部分-紫色部分+重复减去的部分;即从00开始的前缀和。
2024-03-06 14:48:07 339 1
原创 排序算法(部分)
原理:遍历数组,比较相邻元素,最外层循环表示要遍历整个数组,内层循环则表示数组从零开始还剩多少元素需要比较。因为每遍历一次都会将本次遍历过程中最大的数送到最后,因此后续最后的数也没有必要再进行比较。这里i
2024-03-05 18:20:57 376 1
原创 C语言中四舍五入或直接取整的情况
计算机的四舍五入好像只看下一位的大小,例如,如果保留两位小数,那么只看第三位而不关心第四位。但不知道什么原因此时a=105时,输出值为10。2.强制类型转换:直接取整,不考虑小数。4.浮点数的除法运算,四舍五入。此时输出结果为170.00。输出结果为106.46。
2024-03-04 17:50:48 840
原创 关于localtime函数的用法
总的来说,我们可以先用time函数得到当前的时间戳,若将其转换为当地时间的日历格式就需要调用localtime函数,该函数的参数是time_t类型的常量,所以我们先定义一个time_t类型的变量,然后将当前时间赋给它。同时localtime的返回值是struct tm类型的指针,所以我们又定义了一个该结构体类型的指针变量,但用结构体指针一个一个找值太麻烦,我们就使用asctime函数,将struct tm类型常量转换为字符串输出。在 C/C++ 中,time_t 是一个整数类型,通常是 long 类型。
2024-01-25 17:18:40 1841
原创 关于scanf 的吃空白问题
输入1时程序还在继续,直到输入2并按下回车后才执行printf,经过多次试验后,发现当scanf格式串最后有空格时 ,scanf会等待你输入一个非空白字符来结束本次程序的执行。在今天之前我只知道scanf格式串中的空格会吃掉输入时的回车,制表符,空格等空白符。当输入一个整形时,程序并没有结束。但是今天又有所发现如图。
2024-01-24 17:07:13 370
原创 数组问题(删除数组中相同的元素)
需要一个循环遍历元素;一个循环遍历该元素后面的元素;判断是否有相同的,若有相同的,再加一个循环使后面的将该元素覆盖;要注意i--和的位置;
2023-12-17 20:37:49 28
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人