A-A+

给定一个整数数组B[N] 数组B中连续的相等元素构成的子序列称为平台。试设计算法 求出B中最

2022-08-12 15:49:38 问答库 阅读 196 次

问题详情

给定一个整数数组B[N],数组B中连续的相等元素构成的子序列称为平台。试设计算法,求出B中最长平台的长度。


请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:void Platform(int B[]int N)//求具有N个元素的整型数组B中最长平台的长度{t=1;k=0;j=0;i=0;while(i<n一1){while(i<n—l&&B[i]=--B[i+1])i++;if(i-j+1>t){t=i—j+1;k=j;}//局部最长平台i++;J=i;}//新平台起点printf(”最长平台长度%d在B数组中起始下标为%d”tk);}//Platform
此问题考查的知识点是线性结构的查找问题。可以用t代表最长平台的长度,用k指示最长平台在数组B中的起始位置(下标)。用j记住局部平台的起始位置,用i指示扫描b数组的下标,i从0开始,依次和后续元素比较,若局部平台长度(i—j)大于1时,则修改最长平台的长度k(1=i—j)和其在B中的起始位置(k=j),直到B数组结束,t即为所求。

考点:数组,整数