- 博客(82)
- 收藏
- 关注
原创 牛客Linux高并发服务器开发学习第八天
默认为on,表示调试当前进程的时候,其他的进程继续运行,如果为off,调试当前进程的时候,其他进程被gdb挂起。,同 GCC 配套组成了一套完整的开发环境,GDB 是 Linux 和许多 类Unix系统的标准开发环境。- 读时共享(子进程被创建,两个进程没有做任何的写的操作),写时拷贝。- 刚开始的时候,是一样的,共享的。某些状态下:子进程刚被创建出来,还没有执行任何写数据的操作。父进程中:>0 返回子进程的ID。当前的进程的父进程的ppid。2.pcb中的一切数据。父子进程对变量是不是共享的?
2024-05-22 22:35:38 415
原创 牛客Linux高并发服务器开发学习第三天
将lession04的文件复制到lession05中lib里面一般放库文件 src里面放源文件。将.c文件转换成可执行程序main.c当前目录下没有head.h利用-I 和head所在的文件夹,找到head。main.c用到了库里面的东西,但是没有找到,因此需要使用在./lib文件夹中 找calc库文件。
2024-04-18 22:40:23 952
原创 牛客Linux高并发服务器开发学习第一天
安装Xshell 7远程连接虚拟机的Ubuntu安装Xftp 7可以传输文件(暂时还没使用)安装VMware Tools可以直接从Windows系统向虚拟机Linux系统拖拽文件实现文件交互。安装CScode可以远程连接Linux系统进行代码的编写。(Windows系统与Linxu系统公钥进行了一系列操作使得CScode直接连接Linux系统不需要输入密码)
2024-04-15 23:18:31 433
原创 PRACH序列生成
每个时频PRACH场合定义了64个前导,按先增加逻辑根序列的循环移位C_v的递增顺序枚举序列,然后按逻辑根序列索引的递增序列枚举,总结:因此PRACH序列生成的顺序,应该是先从高层参数中获取限制集类型,等一系列参数,推导出循环移位,然后生成前导序列。其中q是满足(qu)mod(L_RA) = 1的最小非负整数。如果d_u的值不满足以上关系,在限制集中不存在循环移位。指示不同的前导格式所支持的限制集的类型。随机序列前导集根据下式生成。获得,如果提供了上层的参数。循环移位C_v由下式获得。
2024-04-15 17:18:16 1203
原创 黑马Linux学习第五天| 第四章8~14
首先我们在root中创立了一个myenv文件夹,在myenv文件夹中写了一个mkhaha程序,内容为echo "hahaha".创建好了之后利用chmod修改mkhaha的权限,使得它可以执行。但目前只是在当前文件夹可以执行。如果想让它像cd一样在任何位置都可以执行,需要把它所在的位置/root/myenv添加到环境变量中。因此vim /etc/profile,在最后添加 export PATH=$PATH:/root/myenv,相当于在原来PATH的基础上后面加入了/root/myenv。
2024-04-11 23:17:29 1766
原创 物理随机接入信道PRACH数据生成
对于需要多个PRACH OFDM符号来增强小区覆盖的场景,在连续重复PRACH OFDM符号的开头插入CP,在末尾保留GT,并在各个重复的PRACH序列之间省略CP和 GT。
2024-04-11 16:50:27 2855
原创 黑马Linux学习第四天| 第四章1~7
假如使用tail命令,查看文件尾部内容,跟踪文件的最新更改,此时进行不了其他操作,可以用ctrl+c强制退出。或者当这行命令输错了的时候可以直接用ctrl+c退出这行的输入。
2024-04-10 23:16:45 754
原创 5g学习| 上行传输
物理下行共享信道(Physical Downlink Shared Channel,PDSCH)主要用于下行单播数据的传输,也可以用于寻呼消息和系统消息的传输。PDSCH在天线端口1000~1011 上传输。PBCH物理广播信道(Physical Broadcast Channel,PBCH)承载UE接入网络所需的最小 系统信息的一部分。PBCH的天线端口为4000。用于传输DCI。
2024-04-10 18:16:29 597
原创 黑马Linux学习第二天| 第二章8~13
语法:touch Linux路径touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用利用ls -l 查看文件开头是-的代表文件开头是d 的代表文件夹。
2024-04-08 21:56:14 982
原创 黑马Linux学习第一天| 第二章1~7
Linux只有一个顶级目录,称之为根目录,用左斜杠表示/Windows系统有多个顶级目录,即各个盘符,如:C: D: E:例子:Windows表示路径 D:\data\test.txtD盘下有个data文件夹,data文件夹内有个test.txtLinux表示路径 /data/test.txt根目录下有个data文件夹,data文件夹内有个test.txt。
2024-04-07 23:09:45 508
原创 代码随想录算法训练营总结篇
但随着时间的积累,我做题的速度和写博客的速度都大大提升了,有些时候回忆前一天的学习内容,当天的题甚至不需要看视频就可以自己做出来,因此一定要坚持每天做题,写博客,不能让大脑停下来。现在也养成了记录博客的好习惯,还写了一些仅自己可见的博客记录学习C++的过程。在无计划无头绪学习算法一段时间后,终于坚定了自己的想法,加入了代码随想录算法训练营,在训练营期间的每一天,都跟着群里的进度一同推进,坚持了两个月,终于学完了算法的内容,对各个部分数据结构的题型都有了一些经验。
2024-03-29 16:47:30 235
原创 代码随想录算法训练营第六十天|LeetCode84 柱状图中最大的矩形
思路:利用单调栈,这道题是寻找第一个比当前索引对应的元素小的元素。单调栈内单调递减,为了防止给的数组中的元素为单调递增,无法返回结果,或者第二个元素小于第一个元素,无法返回结果,在数组前后加上两个0。当前索引对应元素比栈顶对应元素小时,将栈顶记录弹出,以记录的上一个栈顶索引的最大矩形面积的高为其对应的元素,宽为i-现在的栈顶st.top()再-1。如果面积大了就更新面积。
2024-03-28 23:24:54 279
原创 代码随想录算法训练营第五十九天|LeetCode503 下一个更大元素II、LeetCode42 接雨水
思路:这道题主要要考虑如何处理环,一开始的思路为,如果result[i]=-1,再遍历一遍j<i处的数组,给result赋值,但是如果数组中有-1就没办法了,会误判。处理环的正确思路为,遍历i到2倍的size,在调用i时对i取模,这样当i大于size,实际上由回到了数组的开头。剩下的代码思路和每日温度的相同。
2024-03-27 23:16:00 256
原创 代码随想录算法训练营第五十八天|LeetCode739 每日温度、LeetCode496 下一个更大的元素
思路:一开始想到了两层for循环的暴力解法,没想到单调栈要干嘛,直接看题解。单调栈内存放数组索引,栈内顺序为数组值从小到大,因此栈顶的索引对应的数组值在栈内是最小的。遍历数组每个元素,如果当前元素大于栈顶的元素,直接将栈顶索引对应的result处赋值为循环当前索引i与栈顶元素st.top()的差值,然后将栈顶弹出,如果当前元素仍大于栈顶元素对应的数组值,重复上述操作。如果当前索引对应的数组值小于等于栈顶元素对应的数组值,将当前索引放入栈内。
2024-03-26 21:23:19 247
原创 代码随想录算法训练营第五十七天|LeetCode647 回文子串 、LeetCode516 最长回文子序列
思路:确定dp数组及其下标含义,dp[i][j]表示以s[i]开头s[j]结尾的字符串是否为回文串。递推公式为if(s[i]==s[j]),判断j和i的位置关系 j==i或者j==i+1,dp[i][j] = true;如果j>i+1且dp[i+1][j-1] = true,dp[i][j] = true;初始化,因为循环中能判断i=j为true的情况,所以一开始所有元素都初始化为false,遍历顺序由于dp[i][j]由左下推得,i从大到小,j从小到大。打印dp数组,可以用于debug。
2024-03-25 21:32:22 212
原创 代码随想录算法训练营第五十五天|LeetCode583 两个字符串的删除操作 、LeetCode72 编辑距离
思路:返回两个字符相同的最少操作,两个字符都可以删减。定义dp数组,dp[i][j]表示返回以word1[i-1]结尾的单词和word2[j-1]结尾的单词 相同的最少操作数。递推公式,如果word1[i-1]==word2[j-1], dp[i][j] = dp[i-1][j-1]。否则,dp[i][j]可以由删除word1或者删除word2获得,min(dp[i-1][j]+1,dp[i][j-1]+1).初始化。dp[i][0]=i,dp[0][j]=j.遍历顺序:从小到大。
2024-03-23 20:50:02 170
原创 代码随想录算法训练营第五十四天|LeetCode392 判断子序列、LeetCode115 不同的子序列
思路:本质还是寻找s与t的最长公共子序列,如果最长公共子序列长度与s的长度相同,说明s为t的子序列。因此确定dp数组及其下标含义dp[i][j]为以s[i-1]和t[j-1]的子序列的最长公共子序列长度,递推公式,如果s[i-1]==t[j-1],dp[i][j] = dp[i-1][j-1]+1.如果不相等,dp[i][j] = dp[i][j-1],因为s整段都需要判断,因此不能考虑s删元素的情况,只考虑t删元素的情况。初始化dp数组,都为零,第-1个元素没意义。遍历顺序,从小到大。
2024-03-22 22:16:26 162
原创 代码随想录算法训练营第五十三天|LeetCode1143 最长公共子子序列、LeetCode1035 不相交的线、LeetCode53 最大子序和
思路:定义dp[i][j]为以nums[i-1]结尾的子序列1,和以nums2[j-1]结尾的子序列2,他们的最长公共子序列长度。递推公式,如果nums1[i-1] ==nums2[j-1] , dp[i][j] = dp[i-1][j-1]+1。如果不相等,dp[i][j]可以由dp[i][j-1]或者dp[i-1][j]推得,举例,子序列1为abcde,自序列2为acd,当i=2,j=2时,b不等于c,此时得dp[2][2]可以由ab与a的最长公共子序列个数或者,a和ac的最长公共子序列个数推的。
2024-03-21 21:01:45 186
原创 代码随想录算法训练营第五十二天|LeetCode300 最长递增子序列、LeetCode674 最长连续递增序列、LeetCode718 最长重复子数组
思路:确定dp数组及其下标含义,dp[i]表示以nums[i]为结尾的最长递增子序列长度。递推公式,遍历i以前的子序列, 如果nums[i]>nums[j],dp[i]就等于max(dp[i],dp[j]+1),找到当前最长的递增序列长度。初始化 dp[0]=1;遍历顺序,从小到大。打印dp数组,可以用于debug。
2024-03-20 22:50:59 285
原创 代码随想录算法训练营第五十一天|LeetCode309 买卖股票的最佳时机含冷冻期、LeetCode714 买卖股票的最佳时机含手续费
思路:确定dp数组及其下标含义 dp[i][0]表示第i天冷却期的最大金额,dp[i][1]表示第i天不是冷却期持有股票的最大金额,dp[i][2]表示第i天不是冷却器不持有股票的最大金额。递推公式,dp[i][0],第i天为冷却期的话,第i-1天一定卖出了股票,因此dp[i][0] = dp[i-1][1]+prices[i]。
2024-03-19 20:41:08 150
原创 代码随想录算法训练营第五十天|LeetCode123 买卖股票的最佳时机III、LeetCode188 买卖股票的最佳时机IV
123.买卖股票的最佳时机III思路:这道题相比于之前的几道题,区别主要在于可以买卖的次数是限制的,为两次,因此dp数组的第二维度有多重状态。确定dp数组及其下标含义,dp[i][0]代表第i天不操作的最大金额,dp[i][1]代表第i天第一次持有股票的最大金额,dp[i][2]代表第i天第一次不持有股票的最大金额,dp[i][3]代表第i天第二次持有股票的最大金额,dp[i][4]代表第i第二次不持有股票的最大金额。递推公式:不进行操作,第i次与第i-1次不操作时相等。
2024-03-18 21:58:49 271
原创 代码随想录算法训练营第四十八天|LeetCode121 买卖股票的最佳时机、LeetCode122 买卖股票的最佳时机II
思路:只能购买一次股票,确定dp数组及其下标含义dp[i][0]表示第i天持有股票的最大钱数,dp[i][1]表示第i天不持有股票的最大钱数,递推公式,第i天不持有股票的最大钱数有两种情况,1、第i天卖出了股票,dp[i-1][0]+prices[i],2、第i天之前没买股票,第i天也不买,dp[i-1][1],所以dp[i][1]=max(dp[i-1][0]+prices[i],dp[i-1][1]);
2024-03-16 18:29:28 261
原创 代码随想录算法训练营第四十七天|LeetCode198 打家劫舍、LeetCode123 打家劫舍II、LeetCode337 打家劫舍III
思路:不能偷相邻的两家。首先确定dp数组及其下标含义 dp[i]表示i之前(包含i)可以投的最大金额。确定递推公式,当前dp[i]与前两个索引有关,如果偷当前节点 dp[i] = dp[i-2]+nums[i].如果不偷当前节点dp[i] = dp[i-1],所以dp[i] = max( dp[i-2]+nums[i], dp[i-1])。初始化dp数组,dp[0] = nums[0]. dp[1]=max(nums[0],nums[1]). 遍历顺序,从小到大。打印dp数组,可以用于debug。
2024-03-15 21:30:33 294
原创 代码随想录算法训练营第四十六天|LeetCode139 单词拆分、多重背包、背包问题总结
问能否能装满背包(或者最多装多少):dp[j] = max(dp[j], dp[j - nums[i]] + nums[i]);问装满背包有几种方法:dp[j] += dp[j - nums[i]]问背包装满最大价值:dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);问装满背包所有物品的最小个数:dp[j] = min(dp[j - coins[i]] + 1, dp[j]);
2024-03-14 20:18:02 218
原创 代码随想录算法训练营第四十五天|卡码网57 爬楼梯(进阶版)、LeetCode322 零钱兑换、LeetCode279 完全平方数
思路:爬上n阶楼梯,每次最多可以上m个台阶 (1<=m<n)。确定dp数组及其下标的含义,dp[j]表示爬上j阶楼梯的方法数。递推公式dp[j] +=dp[j-i];(1<=i<=m)。初始化dp数组,dp[0]=1,如果初始化dp[0]=0,后续dp的值都为0。遍历顺序,由于物品可以重复使用,因此遍历背包时正序。由于1阶+2阶与2阶+1阶是两种不同的方法,因此是排列问题,先遍历背包后遍历物品。打印dp数组,可以用于debug。
2024-03-13 21:51:33 197
原创 代码随想录算法训练营第四十四天|完全背包、LeetCode518 零钱兑换、LeetCode 377组合总和IV
思路:相比于0-1背包,完全背包中的物品是可以重复使用的,在代码上,背包的循环是从前往后的。在面对常规求完全背包最大价值的问题中,物品的循环和背包的循环的顺序是可以变换的,一般是先遍历物品再遍历背包。在考虑组合排列问题时,如果考虑组合问题,先遍历物品再遍历背包,如果考虑排列问题,先遍历背包,后遍历物品。
2024-03-12 21:39:02 275
原创 代码随想录算法训练营第四十三天|LeetCode1049 最后一块石头的重量II、LeetCode494 目标和、LeetCode 474 一和零
思路:因为每一回合都要挑选两块石头粉碎,因此如果可以将所有石头分为两组重量和相近的组合,就可以返回最后一块石头最小的重量。我们先求总的石头和为sum,再求target=sum/2。因此,背包大小为target能装的最大重量就是我们需要的值,这个值一定小于target。首先确定dp数组及其下标的含义,这里dp[j]用来表示空间为j的背包可以装的最大重量。递推数组为dp[j] = dp[j-stones[i]]+stones[i]。此处stones里面的元素及代表空间也代表重量。
2024-03-11 21:32:59 292
原创 代码随想录算法训练营第四十一天|卡码网46 携带研究材料、 LeetCode416 分割等和子集
思路:0-1背包问题。dp[i][j]表示向空间大小为j的背包里放0~i个物品的最大价值。递推公式dp[i][j] = max(dp[i-1][j],dp[i-1][j-space[i]]+value[i]),有两种情况,不放i进背包,放i进背包,放i进背包的话,背包至少为i空余处space[i]的位置。初始化dp数组,dp[i][0]=0,因为背包容量为0时,什么都放不进去,价值为0。当背包容量大于第一个物品的容量时价值为第一个物品的价值。
2024-03-09 12:23:16 261
原创 代码随想录算法训练营第四十天|LeetCode343 整数拆分、LeetCode96 不同的二叉搜索树
思路:确定dp数组以及下标的含义 dp[i]代表 i可以被拆分后的最大乘积。确定递推公式,假如拆成连个数,dp[i] = j*(i-j),拆成两个数以上,dp[i]=j*dp[i-j],j的范围为1到i-1.dp[i]找到所有情况的最大值。初始化dp[2]=1。dp[1]=0。
2024-03-08 22:37:17 226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人