这题我先是用了计数排序,AC。
然后看他的要求,不符合,后来看了discussion,把存在的位置变成负数,太妙了,既保留了原有信息,又做了标记。
vector<int> findDisappearedNumbers(vector<int>& nums) {
vector<int> result;
for (int i = 0;i<nums.size();i++) {
int index = abs(nums[i]) - 1;
if (nums[index] > 0) nums[index] = -nums[index];
}
for (int i = 0;i<nums.size();i++) {
if (nums[i] > 0) {
result.push_back(i + 1);
}
}
return result;
}