0

誰かがこの問題で私を助けることができますか?マトリックス内の同一の行を削除する最速の方法は何ですか。たとえば、同じ行が3つある場合、2つが削除されます。

例えば

0 1 0
0 1 0
0 1 0
1 1 1

になります

0 1 0
1 1 1

4

1 に答える 1

0

明確に定義された順序(辞書式順序など)に基づいてマトリックスの行を並べ替えてから、隣接する行を比較して、重複が見つかったときにそれを削除します。元の行の順序を復元する必要がある場合は、並べ替えによって誘導した行の順列を追跡し、重複する行を削除したら、その順列を逆にすることができます。

ソートせずに任意の種類のペアワイズ比較を実行すると、重複を見つけるためにO(N 2)時間計算量になりますが、最初にソートするとO(N log N)時間計算量になります。ここで、Nは行数です。

実装の詳細について質問がある場合は、これまでに何を試したかをお知らせください。また、期待をどのように満たしていないかを説明する必要があります。

于 2013-03-23T23:49:55.460 に答える