これが基本的な問題です。要素が重複している可能性のある整数の配列があります。各要素のインデックスを知る必要がありますが、配列を並べ替えるときに、新しい配列から要素を選択するたびに、元の配列から同じ要素を参照できるようにしたいと考えています。
問題の解決策、または私が取っているアプローチの解決策を探しています。
ここに配列があります
a = [1, 2, 3, 4, 3, 5, 2]
2 が 2 つと 3 が 2 つありますが、1 つ目2
(左から) を使用する場合はインデックス 1 を使用し、2 つ目を使用する場合2
はインデックス 6 を使用したいと考えています。したがって、ヘルパー配列を使用してこれを実行できるようにします。
helper = [0, 1, 2, 3, 4, 5, 6]
これを反復して、 から各要素にアクセスするために使用しますa
。
でこれを達成できたかもしれませんeach_with_index
が、問題は配列をソートするときに始まります。
今、私はソート順を持っています
sort_order = [2, 4, 1, 5, 3]
私はsort_order に従ってsort_by
並べ替えて、生成するために使用しますa
sorted_a = [2, 2, 4, 1, 5, 3, 3]
例外sort_order
を避けるために、入力内のすべての要素が存在すると想定することができます。sort_by
問題はhelper
、新しい位置に一致するように配列を更新する必要があることです。a
新しい配列の最初の 2 が元の配列のインデックス 1 にあるのかインデックス 6 にあるのかが不明であるため、各要素はソートされたのと同じ方法でソートする必要があります。
したがって、私の新しいヘルパー配列は次のようになります
new_helper = [1, 6, 3, 0, 5, 2, 4]
new_helper
では、このアプローチを使用する場合、元の配列と並べ替え順序が与えられた場合、どのように配列を生成するのでしょうか?
多分これを行うためのより良い方法がありますか?