#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
if (!(cin >> n)) return 0;
unordered_set<int> s; // 存不同的元素以统计多样性
for (int i = 0; i < n; ++i) {
int x; cin >> x;
s.insert(x);
}
int k = (int)s.size(); // 不同元素个数
cout << (n - k) << "\n"; // 最多可删除的元素数
return 0;
}
import sys
def main():
data = list(map(int, sys.stdin.read().split()))
if not data:
return
n = data[0]
arr = data[1:1 + n]
# 用集合统计不同元素个数
k = len(set(arr))
# 输出最多可删除的元素数量
print(n - k)
if __name__ == "__main__":
main()
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
if (!sc.hasNextInt()) return;
int n = sc.nextInt();
Set<Integer> set = new HashSet<>(); // 用集合统计不同元素
for (int i = 0; i < n; i++) {
set.add(sc.nextInt());
}
int k = set.size(); // 不同元素个数
System.out.println(n - k); // 最多可删除的元素数量
}
}
数组的多样性是指:数组中不同元素的数量。
小红有一个数组,她希望删除一些元素,但数组的多样性不能改变,小红想知道,自己最多可以删除多少个元素?
第一行输入一个正整数 n ,代表数组的大小。
第二行输入 n 个正整数 ai,代表每个元素。
1≤n,ai≤100
输出一个整数。
输入
5
1 2 3 4 5
输出
0
说明
每种元素都只有一个,因此无法删除任何元素。
输入
4
2 1 1 2
输出
2
说明
类型 1 的元素和类型 2 的元素各删除一个,这样每个都留下了一个。