题解 | 数组中重复的数字

数组中重复的数字

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;
    }
};

全部评论

相关推荐

网安已死趁早转行:山东这地方有点说法
点赞 评论 收藏
分享
03-21 08:46
已编辑
门头沟学院 C++
一个什么都不会的学生:当你有硕士学历的时候HR会说就是比本科生强
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务