// { Driver Code Starts
#include <bits/stdc++.h>
using namespace std;
int findLongestConseqSubseq(int arr[], int n);
// Driver program
int main() {
int t, n, i, a[100001];
cin >> t;
while (t--) {
cin >> n;
for (i = 0; i < n; i++)
cin >> a[i];
cout << findLongestConseqSubseq(a, n) << endl;
}
return 0;
} // } Driver Code Ends
// arr[] : the input array
// N : size of the array arr[]
// return the length of the longest subsequene of consecutive integers
int findLongestConseqSubseq(int arr[], int N) {
//Your code here
sort(arr, arr + N);
int mx = 0, cnt = 0;
for (int i = 0; i < N - 1; ++i) {
if (arr[i] == arr[i + 1]) {
continue;
} else if (arr[i] == (arr[i + 1] - 1)) {
cnt++;
} else {
if (mx < cnt)
mx = cnt;
cnt = 0;
}
}
if (mx < cnt)
mx = cnt;
return mx + 1;
}
Given an array of positive integers. Find the length of the longest sub-sequence such that elements in the subsequence are consecutive integers, the consecutive numbers can be in any order.