次のタスクがあります(より大きなタスクの一部として):
データ構造のような配列から要素を取得して削除する必要がありますk
(kは任意のインデックスです)。配列には要素を削除するための O(n) があり、リストには要素を検索するための O(n) があります。両方の操作を O(1) 時間で実行したいと思います。
この要件を満たすには、どのデータ構造を使用すればよいですか?
説明:
index(5) の要素を削除すると、要素が index(6) から index(5) に移動します。
この特定のタスクは、topcoder srm 300 div2 500 ポイントの問題です。そのような洗練されたデータ構造は必要ありません (最大データは非常に小さいため、単純な Java メソッドで十分です)。
それで、私はこの問題のために配列に固執しているのかもしれませんか?しかし、私はそれを分析し、後で作業後に質問を編集します (本当に興味がある場合は、トップ コーダーのタスクを参照してください)。