链接
code
直接贪心,和上一题一样,都用到了map
#include <iostream>
#include <algorithm>
#include <map>
#include <cctype>
inline int read(){
int x = 0; char ch = getchar();
while (!isdigit(ch)){
ch = getchar();}
while (isdigit(ch)){
x = (x<<1)+(x<<3)+(ch^48); ch = getchar();}
return x;
}
const int N = 1e5 + 10;
int t, n;
int a[N];
std::map<int, int> mp;
int main(){
t = read();
while (t--){
n = read();
for (int i = 1; i <= n; ++i) a[i] = read();
std::sort(a + 1, a + 1 + n);
int ans = 0;
mp.clear();
for (int i = 1; i <= n; ++i) {
if (!mp[a[i]]){
mp[a[i]]++;
ans++;
}else{
if (!mp[a[i] + 1]){
mp[a[i] + 1]++;
ans++;
}
}
}
printf("%d\n", ans);
}
return 0;
}