题目:
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;
}
本文介绍了一种通过使用C++ map容器来查找未排序整数数组中第一个缺失的正整数的方法。通过遍历数组并将所有正整数插入到map中,随后检查连续的正整数序列是否完整,从而找到缺失的数值。
1985

被折叠的 条评论
为什么被折叠?



