<!-- lang: cpp -->
/**
*给定一个无序的整数数组,怎么找到第一个大于0,并且不在此数组的整数。
*比如[1,2,0] 返回 3, [3,4,-1,1] 返回 2。
*最好能O(1)空间和O(n)时间。
*题目转自:@陈利人(sina weibo)
**/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int input[10]={1,2,5,1,3,4,6,9,3,8};
int num[100]={0};
int i;
for(i=0;i<10;i++)
{
if(input[i]>0)
num[input[i]]++;
}
for(i=1;i<100;i++)
{
if(num[i] == 0)
{
printf(" %d ",i);
return 0;
}
}
return 0;
}
转载于:https://my.oschina.net/dongdong2012/blog/162777