《C语言入门100例》(第31例)计数

今天只有一个题

找到所有数组中消失的数字

给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize){
    
    
    int*ret=(int*)malloc(sizeof(int)*numsSize);
    *returnSize=0;
    memset(ret,0,numsSize*sizeof(int));
    for(int i=0;i<numsSize;i++)
    {
    
    
        ret[nums[i]-1]++;
    }
    for(int i=0;i<numsSize;i++)
    {
    
    
        if(ret[i]==0)
        {
    
    
            ret[(*returnSize)++]=i+1;
        }
    }
    return ret;
}

猜你喜欢

转载自blog.csdn.net/weixin_48989391/article/details/121674786