zoukankan      html  css  js  c++  java
  • 剑指offer---数组中重复的数字

    class Solution {
    public:
        // Parameters:
        //        numbers:     an array of integers
        //        length:      the length of array numbers
        //        duplication: (Output) the duplicated number in the array number
        // Return value:       true if the input is valid, and there are some duplications in the array number
        //                     otherwise false
        bool duplicate(int numbers[], int length, int* duplication) {
            if(length<=0||numbers==NULL)
                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]])
                    {
                        *duplication = numbers[i];
                        return true;
                    }
                    //交换numbers[i]和numbers[numbers[i]]
                    int temp = numbers[i];
                    numbers[i] = numbers[temp];
                    numbers[temp] = temp;
                }
            }
            return false;
             
        }
    };
  • 相关阅读:
    JAVA微信公众号网页开发——获取公众号关注的所有用户
    删除mysl
    sql语言(mysql)
    mycat读写分离
    mysql双主双从技术
    实用的10个日志处理案例
    ansible基本操作
    MySQL改密
    mysql源码包安装
    ftp搭建mysql服务器
  • 原文地址:https://www.cnblogs.com/159269lzm/p/7282622.html
Copyright © 2011-2022 走看看