题意:找到数组中没有出现的数字。
思路:由于数字与数字位置有一一对应的关系,可以将ai位置上的数字改成负数。非负数的位置就是没有出现的数字。
class Solution {
public:
vector<int> findDisappearedNumbers(vector<int>& nums) {
vector<int> re;
for(int i = 0; i < nums.size(); ++ i) {
int m = nums[i]>0?nums[i]:-nums[i];
nums[m - 1] = nums[m-1]>0?-nums[m - 1]:nums[m - 1];
}
for(int i = 0; i < nums.size(); ++ i) {
if(nums[i] > 0) re.push_back(i + 1);
}
return re;
}
};