- 博客(23)
- 收藏
- 关注
原创 C++优选算法 438. 找到字符串中所有字母异位词
p=abc,则在s中找到这三个字母连一起的字串便可,如abc、acb、bca、bac、cab、cba都行,并且返回这些字串的个数即可。题目分别给出两个字符串s和p,要求在s中找到所有p的异位词,我采用的是滑动窗口+哈希表的做法。
2025-06-06 16:58:35
383
原创 Linux进程替换以及exec六大函数运用
这种语法说明了最后一个命令行参数之后跟一个空指针,如果用常量0表示,需要将它强制转换成一个空指针,不然它将被解释成整形参数,(比如上面:ls -l -a 被解释成 ls -l -a 0),如果一个整形的长度与char*的长度不同,那么exec函数的实际参数将出错。fork()函数在创建子进程后,子进程如果想要执行一个新的程序,就可以使用进程的程序替换来完成。程序替换是通过特定的接口,加载磁盘上的一个全新的程序(代码和数据),加载到调用进程的地址空间中。以e结尾是要进行自己组装环境变量。
2025-06-05 23:43:11
865
原创 C++优选算法 904. 水果成篮
看到这种题目,总觉得自己在做阅读理解,晕了,题目要求我们在一个数组里分别找出两种数字,并统计这两种数字分别出现一共是多少。
2025-06-05 12:30:23
297
原创 Linux进程控制
内核为每一个终止子进程保存了一定量的信息,所以当终止进程的父进程调用wait或waitpid时,可以得到这些信息。main函数最后会返回一个退出码(return 0之类),返回0表示正常退出,非0表示异常退出,这个退出码一般会返回给父进程,可以用==echo $?WNOHANG:若pid指定的子进程没有结束,则waitpid()函数返回0,不矛等待。WEXITSTATUS:若WIFEXITED非零,说明正常终止进程,提取子进程退出码。可以看到啊,程序在_exit函数的影响下直接退出了,并返回了退出信息。
2025-06-04 18:31:49
851
原创 C++优选算法 1658.将x减到0的最小操作数
题目要求我们在一串数组中找到最少需要多少元素能够正好减掉x的操作数,如下图:可以看出此数组最小操作数为2。
2025-06-03 21:26:33
204
原创 Linux进程地址空间
每个vm_area_struct结构体都描述了一个连续的虚拟内存,在其中由该区域的起始地址(vm_start)、结束地址(vm_end)、访问权限(vm_flangs)等信息。可以发现地址是根据布局图自下而上,逐渐增加的,在栈地址里,由于heap_mem是先定义的,也就是先入栈,由此可以得出,栈是先使用高地址,在使用低地址。根据上图我们看出子进程的全局变量一直在变,而父进程的全局变量不变,但是他们却共享同一个地址,由此我们可以得出,这里的地址不是物理地址,而是虚拟地址。
2025-06-03 19:23:36
979
原创 Linux环境变量
environ 是一个全局变量(extern char **environ),直接指向进程的环境变量表。environ没有被包含在任何头文件里,而是在标准库里,所以使用时要用extern声明。添加完毕后使用:source ~/.bashrc命令重新加载配置。**方法2:永久添加到PATH(修改Shell配置文件) **
2025-06-02 11:37:24
883
原创 Linux2.6调度队列
在系统当中查找⼀个最合适调度的进程的时间复杂度是⼀个常数,不随着进程增多⽽导致时间成本增加,我们称之为进程调度O(1)算法!
2025-05-30 10:58:30
562
原创 C++优选算法 209. 长度最小的子数组
题目要求我们在一个数组中,找到最小区间里的和加起来大于或等于target的值。例如上图示例1中有许多可能我们要在这多种可能的区间中,找到最短的区间,也就③号。
2025-05-28 15:11:40
160
原创 C++优选算法 18.四数之和
题目要求我们在一个数组中找到四个数加起来,正好等于目标值target的四元组,列举出这些四元组有哪些,并且要求不能重复。在做这道题之前,如果没有做过三数之和、二数之和的建议先去做这两道,最后再来做这道。本题的解题思路是结合二数之和、三数之和,采用定位法。和三数之和的做法类似,只不过多在外面嵌套了一层。
2025-05-26 16:24:01
266
原创 Linux进程概念
比如有一家银行,其中有不同职业行长、柜员、保洁阿姨、保安等等,每个人都有自己的责任,而操作系统就是里面的行长,如果行长不管理职员了,那将会导致柜员不好好干活,导致办理业务不积极,阿姨清理不干净,保安睡觉等情况。该进程是由僵尸进程衍生过来的,如果子进程先退出,父进程还在运行,而父进程却一直不读取子进程的退出码,叫该进程为僵尸进程。写过代码的都知道,在写完代码后编译器会生成一个.exe文件,也就是可执行文件,这个.exe文件在双击运行后,咋们的代码就会跑起来,那么这个跑起来的程序,就叫做进程。
2025-05-23 19:29:26
805
原创 C++优选算法 611.有效的三角形个数
根据题目要求,需要我们在一个数组当中枚举出能组成三角形的个数。三角形的定义:任意两条边加起来大于第三条。
2025-05-14 17:22:53
301
原创 C++优选算法 11.盛最多水的容器
题目链接:11.盛最多水的容器根据题目要求,我们需要找出数组中两个端点可以容纳最大水量是多少。也就说就像一个木制水桶,能存储多少的水,是根据最低的木条决定的,因为水是倒不满的,会从最低的木条漏出去,本题也是如此。
2025-05-12 20:34:30
251
原创 C++优选算法:202.快乐数
题目链接:202.快乐数快乐数就是指,一个数上的每位数的平方和加起来,不断重复,直到最后变成1那么这个数就叫做快乐数,如果不是他将一直循环下去。
2025-05-12 15:07:33
251
原创 C++ 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]也就是说,在不改变原数组的数据情况,将数组中的0元素全部移到后面。
2025-04-29 09:43:01
358
原创 C++权限放大、缩小
和权限放大反过来,原本的int*可以直接修改变量,而由const int*修饰却不能修改其值了。意思就是说const修饰是不能修改的,但是通过指针指向其地址开启了管理员模式可以直接修改其值。一、权限放大(const->非const)二、权限缩小(非const->const)
2025-02-17 22:23:46
235
原创 strstr函数的模拟实现,以及思路分享
首先,我们来观察strstr函数的声明定义,它是一个char*类型的函数,所以可以返回数组的地址,其次它里面的参数都是const char*类型,这表示了这两数组是不可以被修改的。下面代码中,while循环里,可以看到,我每循环一次就重新将arr3=arr1,这样做的目的是让arr3来存放arr1地址也就是我们找到,出现的位置,最后返回他。最后我为什么要arr2=s2呢,因为如果出现s1中只出现s2中的前几个元素,并不满足全等条件,则我们要重新赋值,继续后面的判断。
2024-08-26 11:14:03
649
原创 8.22 练习题 找单身狗2,笨解法(有bug)不使用^
有数组的元素是:1,2,3,4,5,1,2,3,4,6。如代码里所诉,将出现过的数记作0,最后不是的数,就是只出现过一次的数。只有5和6只出现1次,要找出5和6.*/此方法只针对数组里不出现0的情况。
2024-08-23 21:26:33
658
原创 关于结构体的基础练习
特点:结构体里的成员都共用一块内存,一个房间不同体型的物品,用到谁就把它放进去,房子的面积是最大成员的面积,可以节省空间。{"龙岗","十堰","Chian"}};**以上代码的作用是通过枚举选择共用体的数据类型,最后输出该数据类型的值。下列代码作用是将一个结构体打包成一个函数,然后以便调用获取Point的值。//定义一个包含2个point的结构体数组。## 4.枚举(Enumeration)enum。## 5.共用体union。//然后给他输出出来。
2024-08-19 16:09:36
637
原创 c语言if语句
就是几条不同的选择结果,以及选择的每条路线都有所对应的限制条件。就比如有两扇门,一扇门上面写的网吧,另一个是自习室,如果你未满18当然进不去,只能else去了自习室。else if(表达式)
2024-08-09 10:47:32
152
原创 回头一看,竟然要毕业了,找不到工作怎么办?!
不行本人决定在此花费一年时间学习,挑战能不能找到工作,目前方向决定的往C语言和数据结构方向走,然后在到sql和算法。本人马上就要大三,马上就要找实习工作了,看了一圈校招竟发现没有一个能投递的对象。首先得定一个学习日程,每周至少花费14个小时学习编程。难道等待的结局就只有进厂了嘛。持续更新中.......
2024-08-08 15:36:09
145
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人