题目:
Given an unsorted integer array, find the first missing positive integer.
For example,
Given [1,2,0] return 3,
and [3,4,-1,1] return 2
解答:
#include "stdafx.h"
#include "map"
#include "string"
using namespace std;
int firstMissingPositive(int nums[], int n);
int main(int argc, char* argv[])
{
int tem[10] = {101, 102, 103, 104,105,106,107,108,109,100};
int ret=firstMissingPositive(tem, 10);
printf(" ret = %d \n", ret);
return 0;
}
int firstMissingPositive(int A[], int n)
{
map<int,int> result;
map<int,int>::iterator it;
int index = 1;
for (int i = 0;i < n;i++)
{
if (A[i] > 0)
{
result.insert(pair<int,int>(A[i], 1));
}
}
for (it = result.begin();it != result.end(); it++, index++)
{
int tmp = (*it).first;
if (tmp != index)
{
return index;
}
}
return index;
}