面试题 17.04. 消失的数字

力扣面试题 17.04. 消失的数字_第1张图片

第一种方法异或 时间复杂度O(N) 

int missingNumber(int* nums, int numsSize)
{
   int x = 0;
   for(int i = 0;i

面试题 17.04. 消失的数字_第2张图片

 第二种方法0-N等差数列公式计算,减去数组中值。 时间复杂度为O(N)

Sn=[n(A1+An)]/2

int missingNumber(int* nums, int numsSize)
{
      int x =(1+numsSize)*numsSize/2;
    for(size_t i=0;i

面试题 17.04. 消失的数字_第3张图片

第三种方法 

 

int compare(const void* p1,const void *p2)
{
    return *(int*)p1-*(int*)p2;
}
int missingNumber(int* nums, int numsSize)
{
    if(numsSize==1||numsSize==0)
    {
        return nums[0]==0?1:0;
    }
     qsort(nums,numsSize,4,compare);
      int i = 0;
      int ret=0;
      for(i=0;i

面试题 17.04. 消失的数字_第4张图片

你可能感兴趣的:(leetcode,算法,c语言,数据结构)