408
文章平均质量分 72
繁星蓝雨
Happy coding!
展开
-
辨析目录表、文件打开表、文件分配表、索引表、FCB、inode、fd等文件系统常见名词
以下内容仅供简单的辨析这些文件系统最基本的名词,如果需要更深入的了解,请查阅相关转移书籍,如《现代操作系统》、《操作系统概念》、《操作系统精髓与设计原理》等书籍。原创 2023-09-19 23:00:00 · 1523 阅读 · 0 评论 -
专业408历年算题大全(2009~2023年)——附带详细代码和多种思路
2010(另设数组移动/逆置数组2011(排序/归并合并数组/数组指针后移/两个数组的折半查找2013(双重枚举/排序/空间换时间/技巧——两两抵消2016(排序/类快排思想排序2018(暴力枚举/排序后扫描数组/空间换时间——hash2020(三重for循环/二重循环+指针后移/一重循环+两折半查找/技巧——贪心+三指针后移。原创 2023-01-31 23:13:32 · 6918 阅读 · 3 评论 -
2023年的专业408算法题
遍历有向图的所有顶点,并统计各顶点的入度(矩阵第i行元素个数)和出度(矩阵第i列的元素个数),输出出度大于入度的K顶点,使用count变量统计K顶点的总数。对于一个有向图,如果一个顶点的出度大于入度,则这个顶点称为K顶点。,输出有向图中所有K顶点,并返回K顶点的总数。(2)用C/C++实现算法。(1)说明算法思想;原创 2022-12-30 23:20:28 · 2450 阅读 · 3 评论 -
2022年专业408算法题
2022年专业408的算法题。原创 2022-12-31 15:57:12 · 3593 阅读 · 5 评论 -
2021年专业408算法题
遍历邻接矩阵的每一行和列的非零元素的个数,来统计每个顶点的度(出度和入度和),并记录度为奇数的顶点个数,若个数为0或2,则返回1,否则返回0。空间复杂度:O(1)时间复杂度:O(n)原创 2022-12-31 17:13:19 · 1452 阅读 · 0 评论 -
2020年专业408的算法题
文章目录1 题目2 解法一(朴素算法)3 解法二1 题目定义三元组(a,b,c)(a,b,c均为整数)的距离D=∣a−b∣+∣b−c∣+∣c−a∣D=|a-b| + |b-c|+|c-a|D=∣a−b∣+∣b−c∣+∣c−a∣。给定3个非空整数集合S1,S2和S3,按升序分别存储在3个数组中。请设计一种尽可能高效的算法,计算并输出所有可能的三元组(a,b,c)(a∈S1,b∈S2,c∈S3a \in S1,b \in S2,c \in S3a∈S1,b∈S2,c∈S3)中的最小距离。例如,S1={-1原创 2020-09-26 00:16:40 · 7616 阅读 · 8 评论 -
2019年专业408的算法题
文章目录0 结果1 题目2 思路3 实现0 结果对于奇数:对于偶数:1 题目2 思路1 首先找到链表的中间结点(n/2);例如偶数个数据对于1,2,3,4,5,6,中间结点为3,第一段数据为1,2,3,第二段数据为4,5,6;奇数个数据对于1,2,3,4,5,中间结点为3,第一段数据为1,2,3,第二段数据为4,5;2 把第二段数据逆置,使用头插法或者原地逆置法;3 把逆置后的第二段数据一次插入到第一段数据中。备注:原地逆置法:将结点的next指向其原结点的前驱。原创 2020-12-16 18:18:54 · 2083 阅读 · 0 评论 -
2018年的专业408算法题
文章目录0 结果1 题目2 思路3 实现0 结果1 题目2 思路因为时间高效,则采用空间换时间的方法。方法:打表计数【数组大小设为n,即元素的个数】。遍历数组出现number,如果范围在[1,n]之间,则记[number-1]次数为1,遍历完数组后,指标i从[0,n)开始递增判断表值是否为0,是则跳出循环,最后输出i+1。3 实现#include <cstdio>#include <cstdlib>int Func(int A[], int n){原创 2020-12-18 01:01:54 · 1800 阅读 · 3 评论 -
2017年408专业算法题
因为要转换为中序表达式,因此使用中序遍历。在中序遍历的过程中,对于当前访问的非空结点p,则先输出"(“,然后递归调用左子树,输出p的权值,递归调用右子树,输出“)”,如果p是根或者叶结点,则不需要输出“(”或”)"。原创 2023-01-31 20:39:02 · 1388 阅读 · 0 评论 -
2016年专业408算法题
因为快排的基准元素元素左边一定小于等于基准元素,基准元素右边的一定大于等于基准元素,故如果中位数小于基准元素,则只对右边的部分继续排序,中位数大于基准元素,则只对左边的部分继续排序。尽可能的大,则需要使划分的两个子集个数尽量想等,较小元素为一个子集,较大元素为一个子集。进行类似快速排序的做法,在处理左右区间时只处理可能包含中位数的区间,即如果区间的范围是。根据前面的思路,对数组进行快速排序得到升序序列,前一个序列取。原创 2023-01-31 20:10:30 · 1459 阅读 · 0 评论 -
2015年专业408的算法题
文章目录0 结果1 题目2 思路3 实现0 结果1 题目2 思路使用数组记录每个数字的绝对值出现的次数,如果出现次数大于1,则进行删除结点操作。3 实现#include <cstdio>#include <cstdlib>typedef struct node{ int data; struct node* link;}NODE;void func(NODE* &L, int n){ NODE* p = L, *q;原创 2020-12-16 19:57:05 · 933 阅读 · 0 评论 -
2014年408专业算法题
WPL:带权路径长度计算原创 2023-01-31 13:34:36 · 1460 阅读 · 0 评论 -
2013年的408算法题
文章目录0 结果1 题目2 思路3 实现0 结果1 题目2 思路思路一:使用hash映射打表,每出现一次次数加1,如果次数有超过n/2,则存在主元素,反之,则不存在。(缺点:需要辅助数组)思路二:两两相互抵消。如果数组中存在大于一般的相同元素,首先假设第一个元素为主元素的候选元素【统计个数为1】,如果目前元素统计的个数大于0,遇到相同的数字——个数加1,不同的数字——个数减1;当元素统计的个数为0时,将遇到的数字变更为候选的主元素。循环结束时,如果个数大于0,则3 实现#include原创 2020-12-18 00:38:58 · 1433 阅读 · 0 评论 -
2012年408的算法题
文章目录0 结果1 题目2 思路3 实现0 结果1 题目2 思路1 分别求两个链表的长度(len1,len2)2 用指针p指向长的链表的表头,接着让p指向和短的链表相同长度的前一个结点【假设len1>len2,就让p不断指向下一个结点len1-len2次】3 用q指向短的链表的表头,分别比较p->next和q->next是否相同(指针地址是否相同),如果相同则返回,否则,直到条件p->next为空,返回空结点。3 实现#include <cstdio&g原创 2020-12-16 22:47:27 · 1087 阅读 · 0 评论 -
2011年专业408算法题
归并的方式为:给数组A和B的下标设置变量i和j,初始为0,每次比较A[i]和B[j],数组C的下一个空位保存较小的那个元素,并使对应的数组下标后移,直到一个数组遍历完,把另一个数组剩下的元素依次保存到数组C中。让数组A和B比较n-1次,到第n次时,此时A[i]和B[j]中较小的一个就会放在数组C的第n个位置上,即中位数。对数组A、B进行折半查找,设L1、R1为数组A的左右查找边界,L2,R2位数组B的左右查找边界。序列A:11,3,15,17,19。序列B:2,4,6,8,20。原创 2023-01-29 22:36:15 · 1723 阅读 · 0 评论 -
2010年408的算法题
文章目录0 结果1 题目2 思路3 实现0 结果1 题目2 思路倒置数组,将数组从头到尾逆置一遍,再从1到p和p+1到n再分别逆置。3 实现#include <cstdio>#include <cstdlib>const int n = 6;//数组大小void Reverse(int* &L, int l, int r){//倒置数组 for(int i = 0;i < (r - l + 1)/2; i++){ in原创 2020-12-17 23:59:32 · 1073 阅读 · 5 评论 -
2009年408的算法题
文章目录0 结果![](https://img-blog.csdnimg.cn/202012172311298.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMzc1NTk4,size_16,color_FFFFFF,t_70)1 题目2 思路3 实现0 结果1 题目2 思路设q指向末尾第k个结点,p指向最后一个结点(假设为n原创 2020-12-17 23:12:01 · 1410 阅读 · 0 评论