首页 > 试题广场 >

小欧的数组修改

[编程题]小欧的数组修改
  • 热度指数:812 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小欧拿到了一个数组,她可以修改其中任意一个元素的值(也可以不修改),使得出现次数最多的那个元素次数尽可能多。你能求出这个最多的出现次数吗?

输入描述:
第一行输入一个正整数n,代表数组的大小。
第二行输入n个正整数a_i,代表数组的各个元素。


输出描述:
一个正整数,代表小欧操作后出现最多的元素次数。
示例1

输入

3
1 2 3

输出

2

说明

将1修改为3,数组变成[3,2,3],3出现了2次。修改方式并不是唯一的。
示例2

输入

1
4

输出

1

说明

由于只有一个数,所以无论是否进行修改,它都只出现了1次。
头像 kkkyd
发表于 2024-11-20 20:06:22
#include<bits/stdc++.h> using namespace std; int main() { unordered_map<int,int>p;//记录出现次数 int n,m,max_num=0; cin>>n; 展开全文
头像 Mag1c0nch
发表于 2024-11-21 14:10:29
考虑使用map维护每个数出现的次数,发现可以顺便维护下map中最大的值 maxn ,答案就是 min(maxn + 1, n) #include <bits/stdc++.h> using namespace std; #define int long long const int N 展开全文
头像 Kato_Shoko
发表于 2024-11-19 23:27:57
map老朋友了。 #include <iostream> #include <queue> #include <map> #include <set> #include <cmath> #include <cstring> #i 展开全文
头像 宿伞之神
发表于 2024-11-20 00:13:48
计数。 #include<bits/stdc++.h> #define int long long #define double long double #define x first #define y second using namespace std; typedef long 展开全文
头像 tartarns_yan
发表于 2024-11-20 09:24:24
#include <bits/stdc++.h> using namespace std; map<int, int>times; int main() { int n, maxx = 0; cin >> n; for(int i = 0; 展开全文
头像 Silencer76
发表于 2024-11-28 14:46:19
可以分类讨论。 如果全部元素一样,那么答案就是 n 。 如果不一样,那么答案是最大次数+1 。 c++代码: #include <iostream> using namespace std; const int N=100100; int a[N],b[N]; int main(voi 展开全文
头像 来泡池子了的西红柿很奔放
发表于 2024-11-26 13:35:39
#include <stdio.h> #include <stdlib.h> int main() { int n; if (scanf("%d", &n) != EOF) { int* a = (int*)mall 展开全文
头像 fpszs
发表于 2024-11-21 20:07:23
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll a[100010],b[100010]; int main() { int n,flag=1; cin>>n; fo 展开全文
头像 高冷荷包蛋666
发表于 2024-11-21 23:17:50
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = 展开全文
头像 阿里嘎多懒羊羊桑_
发表于 2024-11-20 21:01:38
题意最多可以做一次操作,这次操作会把数组里的任意一个元素改为任意值,求出现次数最多元素的最多出现次数思路要使得出现次数最多的元素出现的次数尽可能的多,首先要找到最多的出现次数,这里用哈希表维护了每个元素的出现次数,取最大值为ans最后判断如果ans不等于n的话,说明可以做一次操作使得某个元素变为该值 展开全文