7 条题解
-
2
#include <iostream> using namespace std; int main() { int n , a[10001] , max = -1, num = 0; cin >> n; for(int i = 1;i <= n;i++) { cin >> a[i]; if(a[i] > max) { max = a[i]; } } for(int j = 0;j <= max;j++) { for(int i = 1;i <= n;i++) { if(a[i] == j) { num++; } } cout << num << endl; num = 0; } return 0; }
-
1
#include <bits/stdc++.h> using namespace std; int a[100005]; int f[10005];//再定义一个存放{0,1,2,...,Fmax}的数组 int main() { int n,Fmax = -1; cin >> n; for(int i = 1;i<=n;i++) { cin >> a[i]; if(Fmax <a[i]) { Fmax = a[i];//更新Fmax的值 } } for(int i = 1;i<=Fmax;i++) { f[i] = i; } for(int i = 0;i<=Fmax;i++) { int sum = 0; for(int j = 1;j<=n;j++) {if(f[i]==a[j]) sum += 1; } cout << sum; cout << endl; } return 0; }
-
0
#include<iostream> using namespace std; int n,a[10005],maxa=-1,b[10005]; int main() { cin >> n; for(int i=1;i<=n;i++) { cin >> a[i]; if(a[i]>=maxa) maxa=a[i]; } for(int i=0;i<=maxa;i++) { for(int j=1;j<=n;j++) { if(a[j]==i) b[i]++; } } for(int i=0;i<=maxa;i++) cout << b[i] << endl; return 0; }
-
0
这段代码是一个不完整的实现,它统计了每个数字在数组中出现的次数,并将结果打印输出。然而,它并没有找到最长平台的长度。
要找到最长平台的长度,您可以根据以下思路进行修改:
- 定义两个变量
maxLength
和currentLength
,分别用于记录最长平台的长度和当前正在计算的平台的长度。 - 遍历数组,从第二个元素开始比较当前元素与前一个元素是否相同。
- 如果相同,则将当前长度加1。
- 如果不相同,则将当前长度与最大长度比较,并以较大值更新最大长度。然后重置当前长度为1,为下一个平台做准备。
- 循环结束后,返回最大长度作为结果。
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n; cin >> n; vector<int> arr(n); for (int i = 0; i < n; i++) { cin >> arr[i]; } int maxNum = *max_element(arr.begin(), arr.end()); vector<int> count(maxNum + 1, 0); for (int i = 0; i < n; i++) { count[arr[i]]++; } for (int i = 0; i <= maxNum; i++) { cout << count[i] << endl; } return 0; }
- 定义两个变量
- 1
信息
- ID
- 199
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 130
- 已通过
- 69
- 上传者