Longest Consecutive Subsequence
#include <bits/stdc++.h>
using namespace std;
const int K = 1e5 + 10;
int hsh[K];
int ans(int arr[], int N){
int maxi = arr[0];
for(int i=0;i<N;i++){
maxi = max(maxi, arr[i]);
hsh[arr[i]] = 1;
}
int start;
for(int i=0;i<=maxi+1;i++){
if(hsh[i] == 0){
start = i+1;
break;
}
}
int len;
if(start) len = start-1;
else len = 1;
for(int i=0;i<=maxi + 1;i++){
if(hsh[i] == 0){
len = max(len, i - start);
start = i+1;
}
}
return len;
}
int main(){
int N;
cin >> N;
int arr[N];
for(int i=0;i<N;i++) cin >> arr[i];
cout << ans(arr, N) << endl;
return 0;
}
https://practice.geeksforgeeks.org/problems/longest-consecutive-subsequence2449/1#
ReplyDelete