题号248973 在考研的卷王


题号248973 在考研的卷王

原创 于 2023-03-24 22:50:42 发布 · 粉丝可见 · 148 阅读 · 0 · 0 · 本内容遵循CC 4.0 BY-SA版权协议 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 · 编辑
文章链接:https://blog.csdn.net/hacker_51/article/details/129759834

题目:

示例1:

输入:

10
499 498 500 500 497 495 496 496 492 233

输出:

233 1
492 1
495 1
496 2
497 1
498 1
499 1
500 2

思路:

可以开辟整型数组,利用 分数 作为下标,统计次数,即可无需特意的给它排序而导致运行超时问题,直接开始从小到大进行遍历输出即可

根据思路    易错误源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <bits/stdc++.h>
using namespace std;
int n, minx = 1e8, maxx = -1;
vector<int>num(501, 0);

int main()
{
//freopen("a.txt","r",stdin);
cin >> n;
while (n--) {
int temp;
cin >> temp;
if (temp < minx) //寻找遍历最低临界点,减少多余的遍历,提高运行效率
minx = temp;
if (temp > maxx) //寻找遍历最高临界点,减少多余的遍历,提高运行效率
maxx = temp;
num[temp]++;
}
for (int i = minx; i <= maxx; i++) {
if (num[i])
cout << i << ' ' << num[i] << endl;
}
return 0;
}

结果我们发现:

之后,我又不断的换思路,结合set模板库,map模板库,什么的。

最后,听大佬的指点后,才知道....

cin   和   cout

优点:输入方便,快捷                缺点:效率低,运行速度慢



scanf   和    printf

优点:相比cin  和 cout   效率高,运行速度快些       缺点:输入麻烦一丢丢





当题目中有大量的测试数据,由于cin,cout 输入和输出慢,可能导致TLE,所以这种情况下应使用 scanf  、 printf

此刻我的内心:

所以正确的源码是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <bits/stdc++.h>
using namespace std;
int n, minx = 1e8, maxx = -1;
vector<int>num(501, 0);

int main()
{
//freopen("a.txt","r",stdin);
scanf("%d", &n);
while (n--) {
int temp;
scanf("%d", &temp);
if (temp < minx)
minx = temp;
if (temp > maxx)
maxx = temp;
num[temp]++;
}
for (int i = minx; i <= maxx; i++) {
if (num[i])
printf("%d %d\n", i, num[i]);
}
return 0;
}

觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭

微信二维码

wechat pay

支付宝二维码

ali pay

题号248973 在考研的卷王
http://blog.angindem.cn/2023/03/24/Angindem-CSDN博客/006_6/
作者
Angindem
发布于
2023年3月24日
许可协议