|
💐The Begin💐点点关注,收藏不迷路💐
|
已知一个已经从小到大排序的数组,这个数组的一个平台(Plateau)就是连续的一串值相同的元素,并且这一串元素不能再延伸。例如,在 1,2,2,3,3,3,4,5,5,6中1,2-2,3-3-3,4,5-5,6都是平台。试编写一个程序,接收一个数组,把这个数组最长的平台找出 来。在上面的例子中3-3-3就是最长的平台。
输入
第一行有一个整数n(n <= 1000),为数组元素的个数。第二行有n个整数,整数之间以一个空格分开。
输出
输出最长平台的长度。
样例输入
10
1 2 2 3 3 3 4 5 5 6
样例输出
3
先获取输入数组的元素个数以及数组元素内容,然后通过遍历数组,比较相邻元素是否相等来判断是否处于同一个平台,若是则当前平台长度加1,并在当前平台长度大于已记录的最长平台长度时更新最长平台长度,若相邻元素不相等则重置当前平台长度为1,最后输出最长平台的长度。
C语言代码
#include <stdio.h>
int main() {
int n;
scanf(“%d”, &n); // 读取输入的数组元素个数n
int arr[n]; // 定义数组来存储输入的数组元素
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]); // 循环读取n个整数,存入数组
}
int max_length = 1; // 用于记录最长平台的长度,初始化为1,因为至少有一个元素也算一个平台
int current_length = 1; // 当前平台的长度,初始化为1
for (int i = 1; i < n; i++) { // 从数组的第二个元素开始遍历
if (arr[i] == arr[i - 1]) { // 如果当前元素和前一个元素相等,说明在同一个平台上
current_length++; // 当前平台长度加1
if (current_length > max_length) { // 如果当前平台长度大于已记录的最长平台长度
max_length = current_length; // 更新最长平台长度
}
} else { // 如果当前元素和前一个元素不相等,说明进入了新的平台
current_length = 1; // 重置当前平台长度为1
}
}
printf("%d\n", max_length); // 输出最长平台的长度
return 0;
}
C++ 语言代码
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n; // 输入数组元素的个数n
int arr[n]; // 创建数组用于存放输入的数组元素
for (int i = 0; i < n; i++) {
cin >> arr[i]; // 依次输入n个整数到数组中
}
int max_length = 1; // 初始化最长平台长度为1,最少有一个元素也算平台
int current_length = 1; // 当前平台的长度,初始化为1
for (int i = 1; i < n; i++) { // 从数组第二个元素开始遍历
if (arr[i] == arr[i - 1]) { // 若当前元素与前一个元素相等,处于同一平台
current_length++; // 当前平台长度加1
if (current_length > max_length) { // 若当前平台长度大于已记录的最长平台长度
max_length = current_length; // 更新最长平台长度
}
} else { // 若当前元素与前一个元素不相等,进入新平台
current_length = 1; // 重置当前平台长度为1
}
}
cout << max_length << endl; // 输出最长平台的长度
return 0;
}
Java语言代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); // 获取输入的数组元素个数n
int[] arr = new int[n]; // 定义数组来存储输入的数组元素
for (int i = 0; i < n; i++) {
arr[i] = scanner.nextInt(); // 循环读取n个整数并存入数组
}
int max_length = 1; // 初始最长平台长度为1,因为一个元素也算一个平台
int current_length = 1; // 当前平台长度,初始化为1
for (int i = 1; i < n; i++) { // 从数组第二个元素开始遍历
if (arr[i] == arr[i - 1]) { // 如果当前元素和前一个元素相等,在同一平台上
current_length++; // 当前平台长度加1
if (current_length > max_length) { // 若当前平台长度大于已记录的最长平台长度
max_length = current_length; // 更新最长平台长度
}
} else { // 如果当前元素和前一个元素不相等,进入新平台
current_length = 1; // 重置当前平台长度为1
}
}
System.out.println(max_length); // 输出最长平台的长度
}
}
Python语言代码
n = int(input()) // 获取输入的数组元素个数n
nums = list(map(int, input().split())) // 获取输入的数组元素,转换为列表
max_length = 1 # 初始化最长平台长度为1,至少一个元素也算平台
current_length = 1 # 当前平台长度,初始化为1
for i in range(1, len(nums)): # 从列表第二个元素开始遍历
if nums[i] == nums[i - 1]: # 如果当前元素和前一个元素相等,在同一平台上
current_length += 1 # 当前平台长度加1
if current_length > max_length: // 若当前平台长度大于已记录的最长平台长度
max_length = current_length # 更新最长平台长度
else: # 如果当前元素和前一个元素不相等,进入新平台
current_length = 1 # 重置当前平台长度为1
print(max_length) // 输出最长平台的长度

|
💐The End💐点点关注,收藏不迷路💐
|

3267

被折叠的 条评论
为什么被折叠?



