题解 | #数组中重复的数字#

数组中重复的数字

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

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * @param numbers int整型vector 
     * @return int整型
     */
    int duplicate(vector<int>& numbers) {
        // write code here
        int i,temp;
        for (i=0;i<numbers.size();i++)
        {   //>=的原因是数组是从0开始,所以等于也是错的   
            if (numbers[i]<0 || numbers[i]>=numbers.size())
              return -1;
            if (numbers.size()<=1)
              return -1;
        }

        for (i=0;i<numbers.size();i++)
       {
            while(numbers[i]!=i)
           {
             if(numbers[i]==numbers[numbers[i]])
               return numbers[i];
             else
               {
                temp=numbers[i];
                numbers[i]=numbers[temp];
                numbers[temp]=temp;
                } 
            
            }
            
       };        
            return -1;
    }
 };

这是本人(通信专业计算机小白)第一次自己手打出来的代码(提前看过算法思想),经历很多的错误。但是蛮有纪念意义的。

#剑指OFFER##C++##数组中重复的数字#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务