[蘑菇街]最大间隔

xiaoxiao2021-02-28  102

题目描述

给定一个递增序列,a 1 <a 2 <...<a n 。定义这个序列的最大间隔为d=max{a i+1 - a i }(1≤i<n),现在要从a 2 ,a 3 ..a n-1 中删除一个元素。问剩余序列的最大间隔最小是多少?
输入描述:
第一行,一个正整数n(1<=n<=100),序列长度;接下来n个小于1000的正整数,表示一个递增序列。
输出描述:
输出答案。
输入例子:
5 1 2 3 7 8
输出例子:
4

分析:删除一个元素后的序列的最大间隔大于等于原序列的最大间隔,所以所求就是原序列的最大间隔,就是有点绕,想清楚其实很简单。。。

联机算法,边读入边计算

#include<iostream> #include<vector> using namespace std; int main(){ int n; while(cin>>n){ int tmp1=0,tmp2=0,max=0; while(n--){ cin>>tmp2; max=tmp1>0&&(tmp2-tmp1)>max?tmp2-tmp1:max; tmp1=tmp2; } cout<<max<<endl; } }

转载请注明原文地址: https://www.6miu.com/read-58683.html

最新回复(0)