思路:贪心 哈希表
为了最大化移走的书的数量,每次移走一种分类的所有书籍,直到只剩下一个。
具体实现时,我们可以使用哈希表去统计每一种分类的数量,对于每一种分类,我们只保留一本,其余全部移走。最后,将所有移走的书的数量相加,就得到了答案。
题目内容
小明的书柜里摆放着 n 本书,每本书都有一个分类编号,编号均为 1 到 100 之间的整数。小明准备清理书柜,但他希望每种分类至少留下一本书。请你帮他计算,在满足每种分类至少保留一本的前提下,最多可以移走多少本书。
书的数量 n 不超过 100,每本书的分类编号均为 1 到 100 之间的整数。
输入描述
第一行包含一个整数 n,表示书的总数。
接下来 n 行,每行一个整数,依次表示每本书的分类编号。
输出描述
输出一个整数,表示最多可以移走的书的数量。
样例1
输入
5
1
2
2
3
2
输出
2
说明
书的数量为 5,分类编号依次为 1, 2, 2, 3, 2。
统计各分类出现次数:分类 1 出现 1 次,分类 2 出现 3 次,分类 3 出现 1 次。每种分类至少保留一本,因此分类 1 最多可移走 0 本,分类 2 最多可移走 2 本,分类 3 最多可移走 0 本。
合计可移走 2 本书。
样例2
输入
3
1
1
1
输出
2
说明
书的数量为 3,所有书分类编号均为 1。
分类 1 出现 3 次,每种分类至少保留一本,因此最多可移走 2 本。
样例3
输入
4
10
20
30
40
输出
0
说明
书的数量为 4,分类编号分别为 10, 20, 30, 40。
每种分类均只出现 1 次,已经无法移走任何书籍,因此答案均为 0。