列表

详情


NC218391. 大雄排序

描述

大雄从哆啦A梦那里得到个糖果,每个糖果都有颜色,大雄想要给这些糖果编号:在每个糖果下面标一个数字。

编号只需要满足一条规则:同一颜色的糖果,不能使用相同的数字。

大雄想要尽可能少的使用不同的数字,给所有糖果编号后,至少会使用多少个数字呢?

输入描述

第一行包含一个整数,表示个糖果。
第二行包含个整数,以空格分隔,每个整数代表一种颜色,表示第个糖果的颜色。

输出描述

输出包含一个整数,表示至少使用多少个不同的数字可以满足规则。

示例1

输入:

6
1 1 1 2 3 4

输出:

3

说明:


一种编号是[1,2,3,3,2,1]
使用了3个不同的数字

示例2

输入:

4
2 2 2 2

输出:

4

说明:


一种编号是[1,2,3,4]
使用了4个不同的数字

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C(clang11) 解法, 执行用时: 11ms, 内存消耗: 376K, 提交时间: 2021-03-13 21:01:53

#include<stdio.h>

int main()
{
    int n,m,a[100000],max=0;
    scanf("%d",&n);
    for(int i=0 ; i<n ; i++){
        scanf("%d",&m);
        a[m]++;
        if(a[m]>max) max=a[m];
    }
    printf("%d\n",max);
}

Python3(3.9) 解法, 执行用时: 52ms, 内存消耗: 10912K, 提交时间: 2021-03-13 15:36:48

ls=[]
n=input()
x=input()
ls=x.split(" ")
num_count={}
for i in ls:
  if i not in num_count:
    num_count[i]=1
  else:
    num_count[i]+=1
numb=max(num_count.values())
print(numb)

C++(clang++11) 解法, 执行用时: 12ms, 内存消耗: 496K, 提交时间: 2021-03-13 14:30:00

#include<stdio.h>
int main()
{
	int n,m,a[100000],max=0;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		scanf("%d",&m);
		a[m]++;
		if(a[m]>max) max=a[m];
	}
	printf("%d\n",max);	
}

上一题