缺失的第一個正數(firstMissingPositive)
阿新 • • 發佈:2019-01-22
int firstMissingPositive(int* nums, int numsSize) { int smallest=INT_MAX; int bigest=0,i=0; for(i=0;i<numsSize;i++){ if(nums[i]<=0)continue; if(nums[i]<smallest)smallest=nums[i]; if(nums[i]>bigest)bigest=nums[i]; } if(smallest>1)return 1; int *temp=(int *)calloc(bigest+1,(sizeof(int))),*head=temp; for(i=0;i<numsSize;i++){ if(nums[i]<=0)continue; int tmp=nums[i]-1; if(temp[tmp]==0)temp[tmp]=1; } while(*(temp++)!=0); return temp-head; }