输入 输入的第一行包含一个正整数n,表示队伍人数。 输入的第二行包含n个正整数,表示队伍中每个人的身高(单位:毫米) 输出 输出一行一个整数,表示身高相同的最多有多少个人。 c++
时间: 2024-02-12 18:07:16 浏览: 27
以下是一个使用桶计数算法的 C++ 实现:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> heights(n);
for (int i = 0; i < n; i++) {
cin >> heights[i];
}
const int MAX_HEIGHT = 1000000; // 最大身高
vector<int> count(MAX_HEIGHT + 1, 0); // 桶数组
for (int i = 0; i < n; i++) {
count[heights[i]]++;
}
int max_count = 0;
for (int i = 0; i <= MAX_HEIGHT; i++) {
if (count[i] > max_count) {
max_count = count[i];
}
}
cout << max_count << endl;
return 0;
}
```
这个算法的时间复杂度是 O(n),空间复杂度是 O(最大身高)。
相关问题
输入2行,第1行为一个正整数n,第2行包含n个正整数,输出正整数n的平均值
以下是Python代码:
```
n = int(input())
nums = input().split()
nums = [int(x) for x in nums]
average = sum(nums) / n
print(average)
```
解释:
首先,我们用 `input()` 函数读入字符串形式的第一行输入,然后用 `int()` 函数将其转换为整数类型 `n`。
接下来,我们用 `input()` 函数读入字符串形式的第二行输入,并用 `split()` 函数将其按空格分割成多个字符串,存放在列表 `nums` 中。
然后,我们用列表解析式将列表 `nums` 中的每个字符串转换为整数类型。
然后,我们使用 `sum()` 函数将列表 `nums` 中所有元素的和求出来,然后除以 `n` 得到平均值 `average`。
最后,我们使用 `print()` 函数输出平均值 `average`。
C++输入2行,第1行为一个正整数n,第2行包含n个正整数,输出正整数n的平均值
#include <stdio.h>
int main()
{
int n, i, sum = 0, x;
scanf("%d", &n); // 输入n
for(i = 1; i <= n; i++)
{
scanf("%d", &x); // 输入n个正整数
sum += x; // 将所有数累加起来
}
printf("%.2f", (float)sum / n); // 输出平均值,注意要将sum强制转换为float类型,以便计算出小数结果
return 0;
}