我是靠谱客的博主 搞怪鸵鸟,最近开发中收集的这篇文章主要介绍【蓝桥杯】 最大间隙:给定一个序列a_1,a_2,⋯,a_n,其中a_1≤ a_2≤⋯≤ a_n。 相邻两个数之间的差(后一个数减前一个数)称为它们的间隙。 请问序列中最大的间隙值是多少?题目描述解题思路解题代码测试用例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

【蓝桥杯】 最大间隙

  • 题目描述
  • 解题思路
  • 解题代码
    • C语言
  • 测试用例

题目描述

题目传送门 >> 最大间隙

【问题描述】
给定一个序列 a 1 , a 2 , ⋯ , a n a_1,a_2,⋯,a_n a1,a2,,an,其中 a 1 ≤ a 2 ≤ ⋯ ≤ a n a_1≤ a_2≤⋯≤ a_n a1a2an
相邻两个数之间的差(后一个数减前一个数)称为它们的间隙。
请问序列中最大的间隙值是多少?

【输入描述】
输入的第一行包含一个整数 n,表示序列的长度。
第二行包含 n 个正整数,为给定的序列。
其中,1≤ n≤ 1000,1≤ a_i≤ 1 0 5 10^5 105

【输出描述】
输出一个整数,表示序列中最大的间隙值。

【输入输出样例】
输入:

 5
 1 3 8 9 12

输出:

 5

【运行限制】
• 最大运行时间:1s
• 最大运行内存: 128M


解题思路

从输入序列的第2个元素开始,判断插入的元素与上一个元素的间隙,如果当前间隙大于之前的最大间隙"max",则将当前间隙赋值给最大间隙。


解题代码

C语言

#include <stdio.h>
int main()
{
	int n, i, max = 0;
	scanf("%d", &n);	//输入一个整数n,表示序列的长度
	int ai[100000] = {0};
	for (i = 0; i < n; i++) {
		cin >> ai[i];	//输入n个正整数,为给定的序列
		if ((i != 0) && (ai[i] - ai[i - 1] > max)z) {
			max = ai[i] - ai[i - 1];
		}
	}
	printf("%d", max);
	return 0;
}

测试用例

测试1
输入:

 4
 1 4 7 14

输出:

 7

测试2
输入:

 6
 4 6 10 18 21 25

输出:

 8

最后

以上就是搞怪鸵鸟为你收集整理的【蓝桥杯】 最大间隙:给定一个序列a_1,a_2,⋯,a_n,其中a_1≤ a_2≤⋯≤ a_n。 相邻两个数之间的差(后一个数减前一个数)称为它们的间隙。 请问序列中最大的间隙值是多少?题目描述解题思路解题代码测试用例的全部内容,希望文章能够帮你解决【蓝桥杯】 最大间隙:给定一个序列a_1,a_2,⋯,a_n,其中a_1≤ a_2≤⋯≤ a_n。 相邻两个数之间的差(后一个数减前一个数)称为它们的间隙。 请问序列中最大的间隙值是多少?题目描述解题思路解题代码测试用例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部