AcWing 4482. 分组

本文最后更新于:2022年6月18日 晚上

从题目中给出的样例来看,好像找出数组中 相同元素的数量的最大值好像就行。
6
1 2 4 3 3 2

使用数组记录,某个元素x出现的次数,求最大的次数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<bits/stdc++.h>
using namespace std;

const int N = 110;
int n;
int a[N];
int res;
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
int x;//3
cin >> x;
a[x] ++;//a[3]++;
if (a[x] > res) res ++;
}

cout << res;
return 0;
}

使用map记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<bits/stdc++.h>
using namespace std;

const int N = 110;
int n;
int a[N];
int res;
int main()
{
map<int, vector<int>> mp;
cin >> n;
for (int i = 0; i < n; i++)
{
int x;
cin >> x;
mp[x].push_back(i); // 3--> 2个元素
}

for (auto item : mp)
{
res = max(res, (int) item.second.size());
}
cout << res;
return 0;
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!