You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Given a read only array of n + 1 integers between 1 and n, find one number that repeats in linear time using less than O(n) space and traversing the stream sequentially O(1) times.
Sample Input:
[3 4 1 4 1]
Sample Output:
1
If there are multiple possible answers ( like in the sample case above ), output any one.
If there is no duplicate, output -1
*/
//Solution 1
int Solution::repeatedNumber(const vector<int> &A) {
int n = A.size();
char ch[n+1];
memset(ch, '0', sizeof(ch));
for(int i = 0; i < n; i++) {
if(ch[A[i]] == '1') {
return A[i];
}
ch[A[i]] = '1';
}
return -1;
}
//Solution 2
int Solution::repeatedNumber(const vector<int> &A) {