题解 | 数组中重复的数字

数组中重复的数字

https://www.nowcoder.com/practice/6fe361ede7e54db1b84adc81d09d8524

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param numbers int整型vector 
     * @return int整型
     */
    int duplicate(vector<int>& numbers) {
        // 思路,按0~n-1的顺序存放数字
        int number = numbers.size();
        for(int i =0 ; i <number;++i)
        {
            //首先判断元素合法性
            int iter = numbers[i];
            if(iter <0 ||iter >=number)
            {
                break;
            }
            //判断是否是在合适的位置
            if (i == iter) 
            {
                continue;
            }
            if(iter == numbers[iter])
            {
                return iter;
            }
            //将iter 和 位置i的元素互换
            int temp = iter;
            numbers[i] = numbers[iter];
            numbers[iter] = temp;
        }
        return -1;
    }
};

全部评论

相关推荐

刘湘_passion:太强了牛肉哥有被激励到
点赞 评论 收藏
分享
饼子吃到撑:当我看到外企的时候,我就知道这大概率可能是真的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务