4

こんにちはこれはCareerCupのインタビューの 1 つからの質問です。

問題文 : Google などのロギング システムをどのように設計しますか。URL が 2 つの時間枠内で開かれた回数を照会できるはずです。

i/p : start_time 、 end_time 、URL1 o/p : 開始時刻と終了時刻の間に URL1 が開かれた回数。

一部の仕様 : データベースは最適なソリューションではありません URL は、特定のタイム スタンプに対して複数回開かれている可能性があります。URL は、2 つのタイム スタンプ内に何度も開かれた可能性があります。start_time と end_time は 1 か月離れている場合があります。時間は 1 秒単位まで細かく設定できます。


私のアプローチ:

ロギング システム: URL としてのキーと、URL がクリックされた回数の配列リストとしての値のハッシュ テーブルを作成します。クエリ時間: 時間枠が指定されている場合、変更されたバイナリ検索を適用し、その時間枠の間の位置を取得してから、その時間枠の間に URL が開かれた回数をカウントします。

誰かが私のアプローチについてコメントしたり、より良いアプローチを提案したりできますか? ありがとう。

PS私はこれを見ました(情報検索:時間枠内のURLヒット)が、あまり役に立たなかったので、もう一度質問します.

4

1 に答える 1

0

私は以下のように問題にアプローチしたでしょう-

保管所

Key ---> URL Value ---> ArrayList of Date を持つ HashMap を使用します

URL がクリックされるたびに、上記のハッシュマップにエントリを追加/更新します。

検索

指定された時間枠 t1 & t2 と URL に対して、URL に対応する arraylist を取得し、t1 & t2 の位置を見つけます。t2に達するまでインクリメントするカウンターがあります。

于 2013-09-04T09:02:59.313 に答える