抽象一下题意,从 n 个数里面选择 k 个数,问最多能选几个不同的
可以用 set 将 数组去重后,set 的大小即为所有不同数的个数。
最终的答案为 min(set.size(),k)
小红有一个长为n的数组a。他定义一个数组的权值为:数组中不同的数字个数。
小红希望从数组a中选出在个数子,使得这k个数字组成的数组权值最大,请你帮帮小红。
输人包含两行
第一行两个正整效n,k(1≤k≤n≤105),表示数组a的长度和需要选择的数字个数 第二行n个正整数ai(1≤ai≤109),表示数组的元素值
输出包含一行一个正整数,表示选出k个数字组成数组的最大权值。
输入
4 3
1 1 2 2
输出
2
说明
可以选择1,1,2,构成数组,权值为2