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
.
Your algorithm should run in O(n) time and uses constant space.
题目主要是,要寻找1,2,...n,第一个没有的正整数。 所有用map,一下找到了。 另外hash代表什么意思?用哈希?
class Solution {
public:
int firstMissingPositive(vector<int>& nums)
{
if(nums.size()==0)
return 1;
map<int,int> mValue;
int i;
for(i=0;i<nums.size();i++)
{
mValue[nums[i]]=nums[i];
}
map<int,int>::iterator it;
for(i=0;i<nums.size();i++)
{
it=mValue.find(i+1);
if(it==mValue.end())
return i+1;
}
return i+1;
}
};
如果有不对,请批评指正,谢谢!