2016-05-02 12 views
-1

最近インタビューの質問をして、N(10,20)の整数を一定期間にわたってListに見つけました。 Listは、5秒間などの一定間隔で動的に追加されます。この問題に正しいデータ構造とアルゴリズムを使用する方法を教えてください。インタビュー:一定期間に渡ってリストの上位N個の整数

+0

トップN(10,20)の整数はどういう意味ですか?リストのトップ10から20までの整数? – Maljam

+0

何か試しましたか?あなたはインタビューで完全に失敗し、次回に成功する必要がありますか? –

+1

到着時のトップNポイント/タイムスタンプを格納した並べ替えリストを作成します。新しいポイントが到着したとき - 必要に応じて古いポイントをクリーンアップします(期限が切れる場合)。新しいポイントを適切な場所に追加し、そこから最低ポイントを削除します。 – iced

答えて

1

このような質問は通常、あまり洗練されていません。

10個の最後の20個のエントリのうち、最大20個の要素のArrayList:最後に追加すると、最初に1個が削除されることがあります。その後、それらをTreeSetのような新しいSortedSetに追加し、最初の10を逆順に取ります。 @を参照してください

キューが合うなら、いいです。 (それだけではありません)しかし、最も重要なポイントは正しさです。 ArrayListをソートすることはできません。多くの重複がある場合、10未満の数字が表示されることがあります。同時実行ガードなどを追加するためのポイント。

関連する問題