配列、キュー、リンクされたリスト、またはリストデータ構造をサポートするものに格納されている数字のリストがあるとします(つまり、数字のシーケンスが重要です)。ここで、既存のリスト (list.add()) に数値を追加した後、新しいオブジェクトを追加したいとします。しかし、list.add() は元のリストを受け取り、元のリストの番号と新しい番号を含む新しいリストを返します。元のリスト オブジェクトは関数 add() によってまったく変更されません。
したがって、これを実装するには、関数内で元のリストのコピーを作成し、それに新しい番号を追加してから返します。これには O(n) 時間がかかります。
O(n) よりも短い時間でこの作業を行う方法はありますか?
EDIT 1: 要素は最後に追加されます。add() によって返されるオブジェクトには、元のリストのすべての番号と新しい番号が含まれている必要があります。元のリストは変更されません。
編集 2: リストに番号を追加するたびにリスト全体をコピーしないと、可能かもしれないと思います。この点で可能性はありますか?