给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。
class Solution {
public:
vector<int> findDisappearedNumbers(vector<int>& nums) {
vector<int> copy=nums;
vector<int> res;
for( int i = 0 ; i < nums.size();i++)
{
copy[nums[i]-1]=-1;
}
for( int i = 0 ; i <copy.size();i++)
{
if(copy[i]!=-1)
res.push_back(i+1);
}
return res;
}
};
思路:
新建一个与nums大小一致的vector,将出现的数字对应位置置为-1,然后遍历copy,如果存在不为-1的位置则说明缺失该位置所对应的数字