给定一个递增序列,a1 <a2 <...<an 。定义这个序列的最大间隔为d=max{ai+1 - ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少? 输入描述: 第一行,一个正整数n(1<=n<=100),序列长度;接下来n个小于1000的正整数,表示一个递增序列。 输出描述: 输出答案。 输入例子: 5 1 2 3 7 8 输出例子: 4 解析:删除一个元素后,剩余数组中的最大间隔最小是原数组中最大间隔的值。因此,求出原数组的间隔最大值即可。#include<iostream> #include<vector> using namespace std; int main(void) { int n, val; while (cin >> n) { vector<int> ve; for (int i = 0; i < n; ++i){ cin >> val; ve.push_back(val); } int max_dis = 0; for (int i = 1; i < n; ++i){ int dis = ve[i] - ve[i - 1]; if (dis > max_dis){ max_dis = dis; } } cout << max_dis << endl; } system("pause"); return 0; }
最大间隔
最新推荐文章于 2022-12-20 11:08:17 发布