0

JavaScriptで以下を解決するアルゴリズムに取り組んでいます。頭 "1:2,3,4,6,5" には "6" と "5" の尾があり、これらの尾はより高いランクの頭、つまり "2:5,6" でも利用できるため、6 と 5 は頭の下から削除します。つまり、「1:」。すべてのテール値は、ヘッドによって一意に存在する必要があるためです。

入力配列

in = ["1:2,3,4,6,5", "2:5,6", "3:7,8,9"] 

希望の出力

out = ["1:2,3,4", "2:5,6", "3:7,8,9"] 

反復は、私がこれを考えることができる唯一の方法です。これを解決する最善の方法は何ですか? ありがとう。

4

1 に答える 1

1

まず、リストを頭で並べ替えます。次に、ソートされたリストを逆の順序で移動します。リストにアクセスするときは、リストに存在するすべてのテール要素を記録します。テール要素が以前にすでに表示されている場合は、現在のリストから削除します。ハッシュテーブルを使用して、要素が訪問されたかどうかを記録できます。

于 2012-10-07T12:40:41.430 に答える