99.9% time and space - Find All Number Disappeared - C++

Had an idea for swapping values inplace until hitting a deadend and therefore making the problem smaller.
I am very new, please be gentle.

Space = O(1) , Time = O(n)

vector<int> findDisappearedNumbers(vector<int>& nums) {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    int target;
    for(int i = 0; i < nums.size(); i++) {
        target = nums[i];
        while(target != nums[target-1] && target <= nums.size() ) {
            int temp = nums[target-1];
            nums[target-1] = target;
            target = temp;
        }
    }
    int index = 0;
    for(int i = 0; i < nums.size(); i++) {
        if(nums[i] != i+1){
            nums[index] = i+1;
            index++;
        }
    }
    nums.resize(index);
    return nums;
}
Comments (1)