给定一个整数数组 a,其中1 ≤ a[i] ≤ nn为数组长度), 其中有些元素出现两次而其他元素出现一次
    找到所有出现两次的元素。
    你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?
    示例:

    1. 输入:
    2. [4,3,2,7,8,2,3,1]
    3. 输出:
    4. [2,3]
    1. class Solution {
    2. public:
    3. vector<int> findDuplicates(vector<int>& nums) {
    4. vector<int> res;
    5. if(nums.size() <= 0){
    6. return res;
    7. }
    8. int index = nums[0];
    9. for(int i = 0; i< nums.size(); i++){
    10. index = (nums[i] -1)% nums.size();
    11. cout<<nums[i]<<endl;
    12. nums[index] += nums.size();
    13. }
    14. for(int i = 0; i< nums.size(); i++){
    15. if(nums[i] > 2 * nums.size()){
    16. res.push_back(i+1);
    17. }
    18. }
    19. return res;
    20. }
    21. };