1
ループ配列を生成する
前書き ポインタ配列は配列であるL非ゼロの整数の0 ≤ L[i]+i < len(L)すべてのインデックスに当てはまるi(0ベースのインデックスを想定します)。インデックスはインデックスをi 指していると言いますL[i]+i。インデックスが長さの単一サイクルを形成する場合、ポインタ配列はループですlen(L)。ここではいくつかの例を示します。 [1,2,-1,3]は3インデックスを指し示していないため、ポインタ配列ではありません。 [1,2,-1,-3]はインデックスを指していませんので、ポインタ配列ですが、ループではありません-1。 [2,2,-2,-2] インデックスは2サイクルを形成するため、ポインタ配列ですが、ループではありません。 [2,2,-1,-3] ループです。 入力 入力は、妥当な形式の非ゼロ整数の空でないリストです。ソートされていないか、重複している可能性があります。 出力 出力は、入力リスト内のすべての整数(および場合によっては他の整数も含む)を含むループであり、多重度をカウントします。それらは入力と同じ順序で発生する必要はなく、出力はいかなる意味でも最小である必要はありません。 例 入力の[2,-4,2]場合、許容可能な出力はになります[2,2,-1,1,-4]。 ルールとスコアリング 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。回答にいくつかの例の入力と出力を含めることを歓迎します。 テストケース これらは形式で与えられますinput -> some possible output(s)。 [1] -> [1,-1] or [1,1,1,-3] [2] -> [2,-1,-1] or [1,2,-2,-1] [-2] -> [1,1,-2] or [3,1,2,-2,-4] [2,-2] -> [2,-1,1,-2] or [2,-1,2,-2,-1] [2,2,2] -> [2,-1,2,-2,2,-2,-1] …