剑指offer:数组中重复的数字

class Solution {
public:
    bool duplicate(int numbers[], int length, int* duplication)
     {
         // 检查数组边界:空数组/长度小于0
         if(numbers == nullptr || length <= 0)
             return false;

         // 检查数组元素:数组元素不符合题干
         for(int i=0; i<length;++i)
         {
             if(numbers[i]<0 || numbers[i]>length-1)
                 return false;
         }

         /* 找出任意一个重复元素*/
         for(int i=0;i<length;i++)
         {
             while(numbers[i]!=i)
             {
                 // 查找重复元素
                 if(numbers[i] != numbers[numbers[i]])
                 {
                     int temp = numbers[i];
                     numbers[i] = numbers[temp];
                     numbers[temp] = temp;
                 }
                 else
                 {
                     *duplication = numbers[i];
                     return true;
                 }

             }
         }

         return false;
    }
};
2020-04-22
在牛客打卡13天,今天学习:刷题 2 道/代码提交 2 次
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 17:32
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 17:46
暑期就挂了,秋招还有机会吗
大聪明777:研发提前批,14号刚开的,官网上面的配图上有写。提前批没过的话,秋招还可以投,不过前面的笔试/面试记录会被保留,供秋招参考
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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