用原数组的负数表示已经出现过
class Solution {
public:
vector<int> missingTwo(vector<int>& nums) {
vector<int> ans;
int end[2];
for (int i = 0; i < nums.size(); i++)
{
int tmp = abs(nums[i]) - 1;
if (tmp < nums.size())
nums[tmp] *= -1;
else
end[tmp - nums.size()] = -1;
}
for (int i = 0; i < nums.size(); i++)
if (nums[i] > 0)
ans.push_back(i + 1);
for (int i = 0; i < 2; i++)
if (end[i] > 0)
ans.push_back(i + nums.size() + 1);
return ans;
}
};