寻找重复数

int findDuplicate(int* nums, int numsSize){
    int max=0, i;
    int *map;
    for (i=0; i<numsSize; ++i) {
        max = max>nums[i]?max:nums[i];
    }
    map = malloc(sizeof(int) * (max+1));
    memset(map, 0, sizeof(int) * (max+1));

    for (i=0; i<numsSize; ++i) {
        map[nums[i]]++;
        if (map[nums[i]] > 1) {
            free(map);
            return nums[i];
        }
    }
    free(map);
    return 0;
}

 

posted @ 2020-07-22 19:57  yushimeng  阅读(114)  评论(0编辑  收藏  举报