笔试题(蘑菇街):最大间隔
2016-03-19 17:57
330 查看
最大间隔
给定一个递增序列,a1 <a2 <...<an 。定义这个序列的最大间隔为d=max{ai+1 -
ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少?
输入描述:
输出描述:
输入例子:
输出例子:
给定一个递增序列,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<algorithm> #include<vector> using namespace std; int fun(int n){ if(n < 3) return 0; vector<int> nums; int Max = -1; int tmp; cin>>tmp; nums.push_back(tmp); for(int i=1; i<n; i++){ cin>>tmp; Max = max(Max, tmp - nums.back()); nums.push_back(tmp); } if(n == 3) return nums[2] - nums[0]; //if(n == 4) // if( nums[1]-nums[0] != Max && nums[3]-nums[2] != Max ) // Max = max(nums[1]-nums[0], nums[3]-nums[2]); int Min = 0x7FFFFFFF; for(int i=0; i<=n-3; i++) Min = min(Min, nums[i+2] - nums[i]); return max(Min, Max); } int main(){ int n; while(cin>>n){ int res = fun(n); cout<<res<<endl; } return 0; }
相关文章推荐
- Memcached(4)------Memcached的删除机制和发展方向
- 基于angular的route实现单页面cnodejs
- 软件工程第三周第二次作业
- HAProxy的独门武器: 弹性二叉树ebtree
- Mysql HA
- hdu4314Save the dwarfs【dp】
- 第37讲项目4——大奖赛计分(2)
- Hibernate级联保存与删除
- [面试经历]那几个月在找工作(百度,网易游戏,华为)
- openwrt 显示当前时间及更改时区
- 第三周作业(二)
- 第三周进度条
- 构建之法阅读笔记03
- jQuery插件AjaxFileUpload实现ajax文件上传
- Java线程之间的通信-等待/通知机制
- jQuery扩展插件方法 $.extend()和$.fn.extend()
- Transaction and ACID
- HBase源码分析之Region下线
- HBase源码分析之Region上线
- 一页多个uplodify