


If there are any duplicates in the given array we will count only one of them in the consecutive sequence.
For the given 'ARR' [9,5,4,9,10,10,6].
Output = 3
The longest consecutive sequence is [4,5,6].
Can you solve this in O(N) time and O(N) space complexity?
The first line of input contains a single integer 'T', representing the number of test cases or queries to be run. Then the 'T' test cases follow.
The first line of each test case contains integer 'N' denoting the size of the array.
The second line of each test case contains 'N' single space-separated integers, elements of the array.
For each test case, print an integer in a single line that represents the length of the longest consecutive sequence.
You are not required to print the expected output; it has already been taken care of. Just implement the function.
1 <= T <= 10
1 <= N <= 10^5
-10^9 <= ARR[i] <= 10^9
Time Limit: 1 sec
As we only need the consecutive elements in the form ['NUM', 'NUM' + 1, 'NUM' + 2,...,'NUM' + 'L']. The brute force approach is to traverse each element in the array ('NUM' = ‘ARR[i]’) and then keep finding ('NUM' + 1) in the array until we don't find the next consecutive element in the array.
Keep a track of the current length of the sequence. If the current length of the consecutive subsequence is greater than the longest length of consecutive subsequence then update it.
We can improve our time complexity of searching the next consecutive element in the array by using a Hash Table which can check the presence of an element in O(1).
The steps are as follows: