剑指offer——找出数组中重复的数字

题解:找出数组中重复的数字

题目描述

在这里插入图片描述

思路分析

在这里插入图片描述

代码实现

class Solution 
{
    
    
public:
    int duplicateInArray(vector<int>& nums) 
    {
    
    
        int n = nums.size();
        for (auto x : nums)
            if (x < 0 || x >= n)
                return -1;
        for (int i = 0; i < n; i ++ ) 
        {
    
    
            while (nums[nums[i]] != nums[i]) swap(nums[i], nums[nums[i]]);
            if (nums[i] != i) return nums[i];
        }
        return -1;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_45657288/article/details/113360702
今日推荐