#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>usingnamespace std;intfindmissing(int a[],int n){int*p =(int*)malloc(sizeof(int)* n), i;memset(p,0,sizeof(int)* n);for(i =0; i < n; i++){if(a[i]>0&& a[i]<= n){*(p+a[i]-1)=1;}}for(i =0; i < n; i++){if(*(p + i)==0){return i +1;}}}intmain(){int arr[]={1,3,4};printf("%d",findmissing(arr,sizeof(arr)/sizeof(int)));
cout << endl;system("pause");return0;}
python实现
deffindmissing(nums):
r =[0]*(len(nums)+1)for num in nums:if0< num <=len(nums):
r[num -1]=1for i inrange(len(r)):if r[i]==0:return i +1if __name__ =='__main__':
nums =[2,4,7,1,-3,0,5]print(findmissing(nums))