配列の重複番号 - 安全プランを証明します

タイトル説明

アレイにおけるnの長さの全ての数は、n-1の範囲は0です。一部のデジタル配列が重複しているが、重複しているどのように多くの番号がわかりません。各桁が数回繰り返されるか分からないのです。重複した数字のいずれかの配列を見つけてください。例えば、もし入力アレイ7 {2,3,1,0,2,5,3}の長さは、第2の繰り返し桁の対応する出力。
 
思考:位置番号は直接対応するように数値範囲は、範囲0-N-1に加えて、配列の長さであるので
図2に示す第一の位置に加えて、配列の長さ等は、その後、一度アクセスした位置2で表される値は二回訪れた記述の2倍を超える長さである場合
パブリック クラスソリューション{
     // パラメータ:
     //     番号:整数の配列
     //     長さ:配列番号の長
     //     (出力)配列番号に複製数、複製配列の長さは1であるため、使用して複製:複製[0] =?実装では、
    //                   ここでpointorのような重複にC / C ++、重複[0]内には、C / C ++で*重複を等しく
     //     这里要特别注意〜返回任意重复的一个、赋值重複[0]
     // 入力がある場合はtrue:戻り値有効、および配列番号で、いくつかの重複があります
     。//                      そうでない場合はfalse 
    公衆 ブール重複(INTの番号[]、int型の長さ、INT []複製){
         ためINT I = 0、I <長さ、I ++ ){
             int型のインデックス=番号[I]%の長さ。
            番号[インデックス] + = 長さ。
            もし(番号[インデックス]> = 2× 長さ){ 
                重複[ 0] = インデックス。
                返す ; 
            } 
        } 
        を返す  
    } 

}

 

おすすめ

転載: www.cnblogs.com/nlw-blog/p/12459844.html