Find Duplicate in Range 0 and n-1

Code

#include <stdio.h>
#include <string.h>
// Input: n = 5 , arr = [0 1 2 3 2]
// Output: 2
// chi dung 1 vong lap for duy nhat
int find_duplicate(int *arr, int n){

    int find[n];
    memset(find, 0, sizeof(find)); // khởi tạo mảng đánh dấu
    for(int i = 0; i< n; i++){
        if(find[arr[i]] == 1){
            return arr[i];
        }
        find[arr[i]] = 1; // đánh dấu số đã gặp
    }
    return -1;
}


int main(){ 
    int n, a[100];
    scanf("%d", &n);
    
    for(int i = 0 ; i < n; i++){
        scanf("%d", &a[i]);
    }

    printf("%d", find_duplicate(a, n));
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

5 0 1 2 3 2

Expected Output

2