自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 剑指offer JZ7 重建二叉树

想要重建一棵二叉树,得知道这棵树的先序和中序遍历序列,或者是中序和后序遍历序列,这是数据结构的基础知识。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。这道题考察的是二叉树根据先序、中序来重建二叉树的知识,这是数据结构二叉树部分的基础考点,清楚这个推导过程是先决条件。③这个节点把中序序列分成了左右两部分,对应二叉树的左右子树,把这个子数组用java的库函数建立对应的子树;给定节点数为 n 的二叉树的。

2024-09-25 21:45:39 130

原创 建立一棵二叉树

这段代码写来仅自用,如有需要,在移植到自己本地的时候需要微调。

2024-09-21 15:30:25 192

原创 剑指offer JZ54 二叉搜索树的第k个节点

首先明确,二叉搜索树,也叫二叉排序树,即左子树的节点的值全都小于根节点,右子树的节点值全都大于根节点,每颗子树也都遵从这个规则。那么问题就很简单了:要找第k小的节点,就是找经过中序遍历后的序列的第k个位置的节点。网站上标的难度为中等难度,但其实着重考察的是对二叉搜索树,这种数据结构特性掌握的情况,其中用到了中序遍历,其他的像先序遍历、后续遍历都是需要掌握的,对应于不同的情况。该二叉树所有节点按结点值升序排列后可得[2,3,4,5,6,7,8],所以第3个结点的结点值为4,故返回对应结点值为4的结点即可。

2024-09-21 15:08:00 286

原创 剑指offer JZ55 二叉树的深度

此题属于简单题,但层次遍历是二叉树的基础算法,需要熟练掌握,而层次遍历又会用到队列这种数据结构,举一反三的话,层次遍历与广度优先算法BFS是有一些相似的,也是用到了队列,相对应的,二叉树里面的深度优先算法DFS,会用到栈这种结构,这些基本都属于是二叉树这块的基础技能。

2024-09-18 16:15:09 180

原创 剑指offer JZ23 链表中环的入口结点

也就是说,如果以相同的速度,让两个指针,一个从头开始遍历到相遇节点,一个从相遇节点在环中遍历,最后到相遇的节点走的是相同的距离,而因为此时速度相同,所以其中y这个距离,就是重复走的距离,那么他们第一次相遇的点就是环的入口节点了。那么在这个过程中,快指针一共走了x+n*(y+z)+y,慢指针共走了x+m*(y+z)+y,而相同的时间,fast是slow 速度的2倍,所以距离也是2倍,故:x+n*(y+z)+y=2(x+m*(y+z)+y),推导得出(②在有环的链表中找到环的入口。2.双指针(推荐掌握)

2024-09-09 16:29:16 252

原创 剑指offerJZ24 反转链表

简单题,主要考察链表基础,我们在建一个链表时,通常有尾插法和头插法建表(此处不做详细介绍)。简单来说,尾插法可以得到一个按照插入顺序的链表,头插法可以得到一个逆置的链表,所以此题可以在遍历原链表的时候,以头插法建一个新表,而得到的新表,就是需要的答案。经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。要求:空间复杂度 O(1),时间复杂度 O(n)。数据范围: 0≤n≤10000≤n≤1000。如当输入链表{1,2,3}时,

2024-09-01 17:36:12 179

原创 java: 错误: 无效的源发行版:17

排查:百度后,推测大概率就是pom文件的配置问题,是springboot与jdk不兼容的问题,需要修改几处配置(无需重建项目)。1.首先确认一下你的springboot跟java版本是否冲突(我这块没问题,但是好像17有冲突,不确定,是否需要修改视自己的实际情况而定。如果你到了这一步还没解决的话,那你可以看看我最后是怎么解决的,由于我在控制台看到我的项目执行到server那个module时有问题,所以我专门看了一下这一块的pom文件,发现了问题。于是我把这块的配置改成了8,刷新maven,项目成功启动。

2024-07-29 21:37:55 510

原创 启动yarn后,其他节点没有NodeManager

这个问题虽然折磨了我两天,但是原因特别蠢,可能与各位不一定一样,我是因为ResourceManager的节点的"/etc/hadoop/workers"文件没有配置好(没有配hadoop102和hadoop104),但排查过程可以作参考。

2024-07-12 15:26:28 872

原创 yum install epel-release 遇到的问题

在对一些配置文件进行修改的时候,一定要先进行备份,如果出错,还有挽救的机会。安装epel的时候,执行。

2024-07-07 14:43:07 1102

原创 罗马字符转换数字

题目描述:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1;V 5;X 10;L 50;C 100;D 500;M 1000;例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值...

2021-08-24 15:53:16 1269

原创 西安华为OD面试经验(德科)

背景:本科某双非邮电软件专业,二战冲985失败,随便写的简历挂boss上,hr电话联系帮我约的机考(华为od网络风评很差,这一点还是hr告诉我这个初入社会的学生党的,态度挺诚恳,我也只是本着随便试试的态度去的)。机考是5.7号,技术一面是5.11号,技术二面5.14号,两三天后主管面,之后就是两周左右的审核环节,到最终拿到offer,不到一个月时间吧,其中面试环节要说,也就是一周时间,审核比较花时间。流程:机考——性格测试——技术一面——技术二面——主管面——薪资福利待遇通知——体检入职..

2021-06-14 00:58:03 36905 31

原创 数组中重复的数字

题目描述:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000思路:来自于剑指offer,申请一个初始元素全为0的数组arr[],遍历原先数组nums[],用nums[]存的值,来对应申请的arr[]的下标的值,每出现一次.

2021-05-09 23:57:36 324

原创 求解平方根,立方根不使用库函数(牛顿迭代法)

题目描述计算一个数字的立方根,不使用库函数。保留一位小数。输入描述:待求解参数,为double类型(一个实数)输出描述:输入参数的立方根。保留一位小数。输入216输出6.0思想:求立方根:令f(x) = x^3-a = 0,其中a为输入数,解出x即为a的立方根,利用牛顿迭代法,让f(x)在X0处一阶泰勒展开,即f(x) = f(x0)+f`(x0)(x-x0) = x0^3-a+3*x0^2*(x-x0)=0;得到x = x0+(a-x0^3)/(3*x0

2021-05-03 22:58:12 520

原创 删除字符串中出现次数最少的字符

题目描述实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。注意每个输入文件有多组输入,即多个字符串用回车隔开输入描述:字符串只包含小写英文字母,不考虑非法输入,输入的字符串长度小于等于20个字节。输出描述:删除字符串中出现次数最少的字符后的字符串。示例1输入abcddaabcddd输出ddaaddd解题思路: 大致思路是将一串字符存到一个数组中,再...

2021-05-01 17:46:42 1814

原创 打印杨辉三角

题目描述:打印一个10行的杨辉三角思路:1.用二维数组存储值;2.遍历二维数组(Java)代码实现: public static void main(String[] args) { // TODO Auto-generated method stub /** * 打印10行的杨辉三角; **/ //1.声明二维数组 int[][] yang = new int[10][]; //2.给数组赋值 for(int i=0;i<yang.length;i

2021-03-27 15:15:28 126

原创 用栈实现回文串检测

设计思想:栈具有先进后出的特性,将字符串str的一半长度字符入栈,再让其依次出栈,对比出栈序列字符是否与剩下一半长度字符依次相等。需要注意字符个数,分奇数偶数。bool ishuiwen(string str){ int s[100]; int top=-1,mid=str.length()/2-1; //入栈; for(int i=0;i<=mid;++i){ top++; s[top] = str[i]; } int next; if(str.length()%2==0

2020-12-19 00:14:26 429 1

原创 递归实现回文串的判断

//函数实现;bool find(const char *s,int n){ if(n<=1) return true;//递归边界条件(退出条件); else if(s[0]==s[n-1]) return find(s+1,n-2);//依次判断对应位置上的字符是否相等,递归调用,每次字符串长度减2; else return false;}int main(){ string s="abccba"; string ss="a bc c b a"; int len = ss.

2020-12-18 23:47:23 1069 1

原创 用两个栈模拟队列的伪代码实现

已知条件:栈S1与栈S2,有判断栈满函数Isfull(),判栈空IsEmpty(),入栈push(),出栈pop();用这些基本操作来实现EnQueue(),DeQueue(),IsQueueEmpty()函数;基本思路:栈具有先进后出的特性,所以我们用s1来存储进队的元素,用s2来出队,在这个过程中,由于s1出栈的数据是逆序的,再压入s2再次逆序,那么从s2输出的数据就是正常顺序的,用这样的思路模拟一个队列。需要注意的点是:模拟入队和出队的时候,需要判断s1是否已满,以及s2是否为空,当s1满

2020-12-01 00:01:50 985

原创 数据结构—拓扑排序

问:什么是拓扑排序,有什么用,应用场景是什么?首先搞清楚什么是AOV网,如果用DAG(有向无环图)来表示一个工程,用<Vi,Vj>来表示活动Vi必须先于Vj进行的这样一种关系,我们把这种有向图称为顶点表示活动的网络,记作AOV网。拓扑排序:有一个有向无环图的顶点组成的一个序列,必须满足如下条件:①每个顶点都必须出现,且只能出现一次;②如果顶点A在序列中的位置处在B的前面,那么在图中不存在由B到A的路径。注意拓扑排序序列并不唯一,每个AOV网都可以有一个或者多个拓扑序列。.

2020-11-22 19:53:39 501

原创 图的连通,连通图,连通分量,强连通分量

1.对于无向图而言,如果图中的某两个点,例如:存在W到V的路径,那么我们说w和v是连通的;进一步如果图中任意两点之间都是存在路径的,那么我们说这个是连通的,即可称为连通图。2.连通子图:设G=(V,E)和G`=(V`,E`),如果V`是V的子集,并且E`是E的子集,那么称G`是G的子图。如果子图是连通的,那么就是连通子图,这不难理解。(需要注意,并不是你随便从G=(V,E))中挑的V的子集V`跟E的子集E`,就能构成一个子图,因为有可能挑的边V跟顶点E没有关系,那也就构不成一个图了)3.极大连通子图

2020-11-21 18:55:42 7885

原创 40-1

编写一个函数,使得输入的字符串反序保存,在主函数中输入和输出;思路: 编写函数convert()来求逆,string类存字符串,然后依次交换对应位置上的字符,最后输出;代码:#include<iostream>#include<string>using namespace std; #define max 20//设置两个指针,分别指向首尾,当两个指针相遇的时候,意味着遍历完了字符串;void convert(string &str){ int ..

2020-10-26 23:05:43 136

原创 有序顺序表插入数据X

思路:设顺序表L为递增有序,从L的终端结点,往前遍历L,找到插入x的位置,插入x,将大于x的元素往后移动一个单位即可;另外,在往前扫描的过程中,可以边扫描边遍历。代码:typedef struct{ ElementType data[100]; int length;}SeqList;//顺序表存储结构;void InsertSeqList(SeqList L,ElementType x){ int i;//i指示位置; for(i=L.length;i>0&&amp

2020-10-23 19:17:19 3742 1

原创 有序单链表的合并

设有链表A和链表B分别有序,现需要将两链表合并成一条有序链表。思路:开辟一条新链表C,分别遍历A、B按次序插入到C即可,需要注意长度问题,当A或B遍历完,另一条未遍历完,此时将未遍历完的链表直接接到C尾部即可。代码:typedef struct node{ int data; struct node *next;}Lklist;void MergeLklist(Lklist *A,Lklist *B,Lklist *&C){ Lklist *pa,*pb,*t; //pa,

2020-10-22 23:52:05 1577

原创 筛选法求100以内的素数

题目:利用筛选法求100以内的素数。拓展:筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这

2020-09-25 22:58:54 2242

原创 PAT 1026 程序运行时间

题目描述:要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数f的运行时间,我们只要在调用f之前先调用 clock(),获得一个时钟打点数 C1;在f执行完成后再调用 clock(),获得另一个时钟打点数 C2;两次获得的时钟打点数...

2020-06-20 23:43:24 125

原创 PAT 1023 组个最小数

题目描述:给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超过 50,且至少拥有 1 个非 0 的数字。输出格式:在一行

2020-06-08 21:23:34 174

原创 PAT 1022 D进制的A+B

题目描述:输入两个非负 10 进制整数A和B(≤2​30​​−1),输出A+B的D(1<D≤10)进制数。输入格式:输入在一行中依次给出 3 个整数A、B和D。输出格式:输出A+B的D进制数。输入样例:123 456 8输出样例:1103思路分析:这道题主要就是考的进制转换,在编程中进制转换应该属于必会的技能。发现一个进制转换总结的很棒的网站,分享一下。C++中的各种进制转换#include<iostream...

2020-06-07 21:51:03 205

原创 PAT 1020 月饼

题目描述:月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 + 45/2 = 94.5(亿

2020-06-05 21:54:06 273

转载 PAT 1015 德才论

转载:https://blog.csdn.net/hguo11/article/details/50781051/

2020-05-17 22:20:39 133

原创 PAT 1014 福尔摩斯的约会

题目描述:大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母D,代表星期四;第 2 对相同的字符是E,那是第 5 个英文字母,代表一天里的第 14 个钟头(于是一天的 0 点到 23 点由数字 0 到 9、以及大写字母A到...

2020-05-16 22:03:17 259

原创 PAT 1013 数素数

题目描述:令P​i​​表示第i个素数。现任给两个正整数M≤N≤10​4​​,请输出P​M​​到P​N​​的所有素数。输入格式:输入在一行中给出M和N,其间以空格分隔。输出格式:输出从P​M​​到P​N​​的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27输出样例:11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 83 8997 1...

2020-05-15 17:51:25 1700 1

原创 PAT 1012 数字分类

题目描述:给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:A​1​​= 能被 5 整除的数字中所有偶数的和; A​2​​= 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算n​1​​−n​2​​+n​3​​−n​4​​⋯; A​3​​= 被 5 除后余 2 的数字的个数; A​4​​= 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位; A​5​​= 被 5 除后余 4 的数字中最大数字。输入格式:每个输入包含 1 个测试用例。每个测试...

2020-05-14 12:00:34 157

原创 PAT 1010 一元多项式求导

题目描述:设计函数求一元多项式的导数。(注:x​n​​(n为整数)的一阶导数为nx​n−1​​。)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为0 0。输入样例:3 4 -5 2 6 1 -2 0输出样例:12 3 -10 1 6 0思路分析:题目.

2020-05-13 22:46:55 380

原创 PAT 1008 数组元素循环右移问题

问题描述:一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A​0​​A​1​​⋯A​N−1​​)变换为(A​N−M​​⋯A​N−1​​A​0​​A​1​​⋯A​N−M−1​​)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。输出格式:在一行中输出

2020-05-12 11:29:39 720

原创 PAT 1007 素数对猜想

题目描述:让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数。显然有d​1​​=1,且对于n>1有d​n​​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<10​5​​),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出格式:在一行中输出不超过N的满足猜想的素数对的个数。输入样例:20输出样例:4分析:由题目中可以看出,这一对必是素数,且相差

2020-05-09 23:22:33 228

原创 PAT 1006 换个格式输出整数

题目:让我们用字母B来表示“百”、字母S表示“十”,用12...n来表示不为零的个位数字n(<10),换个格式来输出任一个不超过 3 位的正整数。例如234应该被输出为BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数n(<1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出n。输入样例 1:234输出样例 1:BBSSS1234输入样...

2020-05-08 23:32:17 93

转载 PAT 1005 继续(3n+1)猜想

学会用c++的vector容器,高级思路用哈希散列。1005的几种解题思路

2020-05-08 23:00:52 134

转载 PAT 1003 我要通过!

PAT 1003 我要通过!放的这个链接已经很清楚的说明了这道题的思路,下面我放出我自己的具体实现代码,解题思路完全是一样的。仅供参考:#include<bits/stdc++.h>#include<string>using namespace std; int main() { int n; cin >> n;//n是输入字符串的个数...

2020-05-06 09:46:42 140

原创 c++中的int与char之间转换问题

在平时的acm中很容易见到数据类型需要在数字和字符之间转换的问题,我以一个简单的编程题来说一下这个问题。问题描述:读入一个正整数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数n的值。这里保证n小于10​100​​。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有 1 空...

2020-05-05 10:57:55 2182

原创 如何禁止电脑访问某个网站

1.点击计算机;2.打开路径“C:\Windows\System32\drivers\etc”文件夹;3.用记事本打开一个hosts的文件;4.在最下面一行加上:127.0.0.1 “要禁止访问的网站域名或者ip”; 例如:127.0.0.1 www.baidu.com5.最后保存关掉文件即可。再去用浏览器访问这个网站就显示为无法连接。...

2020-04-19 12:34:04 12484 2

基于无线传感器网络的移动目标跟踪系统设计与实现.zip

用MATLAB仿真实现,对单移动目标进行跟踪,主要功能:展示跟踪曲线;初速度、节点坐标等参数设置;实现算法:纯方位角的粒子滤波算法。

2020-07-19

空空如也

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

TA关注的人

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