牛客网---2016---蘑菇街最大间隔
来源:互联网 发布:机顶盒有必要买吗 知乎 编辑:程序博客网 时间:2024/04/30 19:55
定了外卖,不想做饭了,我已经懒得连图片都不想配了,想要回家,啧啧。。。这个图居然是当年玩但玩的时候的图片,啧啧。。。稀饭这个小姐姐。。。
题目:
给定一个递增序列,a1< a2 < …< an 。定义这个序列的最大间隔为d=max{ai+1 - ai }(1≤ i< n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少?
输入:
第一行,一个正整数n(1<=n<=100),序列长度;接下来n个小于1000的正整数,表示一个递增序列。
51 2 3 7 8
输出:
输出答案。
4
解析:
1 . 初步想法是把所有的点都尝试一遍,然后对比分析,但是这样有点麻烦,所以想一想数据特点,有没有什么特殊的地方。
2 . 删掉一个值,反而让最大间隔最小化。可以这样理解。
最大间隔是原来数组的最大间隔,删掉一个数字,只会让最大间隔变大。
所以要让最大间隔最小,就要保证原来最大间隔不变,保证原来最大间隔不变的前提在于不去修改造成最大间隔的数组。前提保证在不删除最后一个和最初一个数字,所以这个题目实际上就是求数组的最大。当然要考虑数组仅仅为3个的情况,最大必定删除中间值,最大间隔必定是最末尾-最开始数值。
解题所需函数:
1 . Java中int的最大值和最小值如何定义,不要用老土的0和1000000了。
// 注意下,这里因为定义maxX为最小值是因为取最小值,任何值必定比他大,所以反过来定义int maxX = Integer.MIN_VALUE;int minX = Integer.MAX_VALUE;
代码:
import java.util.Scanner;public class Main { public static void main(String[] args) { // 获取数据 Scanner in = new Scanner(System.in); while(in.hasNext()){ // 数组大小创建 int n = in.nextInt(); // 创建数组 int arr[] = new int[n]; int maxLength=Integer.MIN_VALUE; for (int i = 0; i < n; i++) { arr[i] = in.nextInt(); if(n==3 && i==n-1){ maxLength=arr[2]-arr[0]; }else if(i>0 && maxLength<(arr[i]-arr[i-1])){ maxLength=arr[i]-arr[i-1]; } } System.out.println(maxLength); } in.close(); }}
阅读全文
0 0
- 牛客网---2016---蘑菇街最大间隔
- [蘑菇街]最大间隔
- 蘑菇街2016研发工程师_最大间隔
- 蘑菇街2016招聘笔试(最大间隔)
- 笔试题(蘑菇街):最大间隔
- 蘑菇街笔试题 最大间隔
- [编程题] 最大间隔 java 蘑菇街2016研发工程师在线编程题
- 牛客网---2016---蘑菇街聊天
- 牛客网-贪心-最大间隔
- 牛客网---2016---蘑菇街搬圆桌
- 牛客网---2016---蘑菇街投篮游戏
- 牛客网---2016---蘑菇街回文串
- 最大间隔
- 最大间隔
- 最大间隔
- 最大间隔
- 最大间隔
- 蘑菇街2016招聘笔试
- try,catch和finally的执行顺序
- linaCharts开发笔记:面拉伸成体
- 斜率优化
- Lua 删除UTf-8编码中的特殊字符
- day12_01文件
- 牛客网---2016---蘑菇街最大间隔
- leetcode 390. Elimination Game
- Python Mysqldb使用简介
- 欧拉函数:HDU1787-GCD Again(欧拉函数的模板)
- php实现无限级分类查询(递归、非递归)
- 笨方法学Python 习题 22: 到现在你学到了哪些东西?
- 2017杭电多校第一场02
- 大数据(四)Hadoop-HDFS zookeeper的安装
- 图论 用prim法求最小生成树