for _ in range(int(input())):
n = int(input())
arr = list(map(int, input().split()))
hm = {}
c = 0
for i in arr:
if i not in hm:
hm[i] = 1
c += 1
else:
if i + 1 not in hm:
hm[i + 1] = 1
c += 1
print(c)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef pair<int,int> pi;
#define repi(i, a, b) for(int i=a; i<b; i++)
#define rrepi(i, a, b) for(int i=a; i>=b; i--)
typedef vector<ll> vl;
typedef pair<ll,ll> pl;
#define repl(i, a, b) for(ll i=a; i<b; i++)
#define rrepl(i, a, b) for(ll i=a; i>=b; i--)
#define srt(a) sort(a.begin(), a.end());
#define rsrt(a) sort(a.rbegin(), a.rend());
#define rev(a) reverse(a.begin(), a.end());
#define mod(n) (((ll)n%1000000007+1000000007)%1000000007)
const int N=1e5+10;
void solve(){
int n;
cin>>n;
vi x(n);
map<int,int> mp;
repi(i,0,n){
cin>>x[i];
mp[x[i]]++;
}
repi(i,0,n){
if(mp[x[i]]>1){
mp[x[i]]--;
x[i]+=1;
mp[x[i]]++;
}
}
cout<<mp.size()<<"\n";
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
ll t; cin>>t; while(t--)
solve();
return 0;
}
647. Palindromic Substrings | 583. Delete Operation for Two Strings |
518. Coin Change 2 | 516. Longest Palindromic Subsequence |
468. Validate IP Address | 450. Delete Node in a BST |
445. Add Two Numbers II | 442. Find All Duplicates in an Array |
437. Path Sum III | 436. Find Right Interval |
435. Non-overlapping Intervals | 406. Queue Reconstruction by Height |
380. Insert Delete GetRandom O(1) | 332. Reconstruct Itinerary |
368. Largest Divisible Subset | 377. Combination Sum IV |
322. Coin Change | 307. Range Sum Query - Mutable |
287. Find the Duplicate Number | 279. Perfect Squares |
275. H-Index II | 274. H-Index |
260. Single Number III | 240. Search a 2D Matrix II |
238. Product of Array Except Self | 229. Majority Element II |
222. Count Complete Tree Nodes | 215. Kth Largest Element in an Array |
198. House Robber | 153. Find Minimum in Rotated Sorted Array |