问答题
给定一个整数数组b[0.N-1],6中连续的相等元素构成的子序列称为平台。试设计算法,求出b中最长平台的长度。【中科院计算所1999五、2(20分)】
【正确答案】正确答案:用longest代表最长平台的长度,用K指示最长平台在数组b中的起始位置(下标)。用j记住局部平台的起始位置,用i指示扫描b数组的下标,i从0开始,依次和后续元素比较,若局部平台长度(i-j)大于longest时,则修改最长平台的长度(10ngest=i-j)和其在b中的起 始位置(k=j),直到b数组结束,longest即为所求。核心语句段如下: longest=1;k=0;J=0;i=0; while(ilongest){longest=i—j+1;k=j;)//局部最长平台 i++;j=i; //新平台起点 }
【答案解析】