Top 150 Interview簡単

時間ベースのキー値ストア ---パイセップ--- 「時間ベースのキー値ストア」問題の詳細なガイドと __PYTERM_0__ 実装。 ---パイセップ--- 異なるタイムスタンプで同じキーの複数の値を保存し、特定のタイムスタンプでキーの値を取得できる、時間ベースのキーと値のデータ構造を設計します。 __PYCODE_0__ クラスを実装します。 - __PYCODE_1__ オブジェクトを初期化します。 - __PYCODE_2__ 指定された時刻 __PYCODE_5__ で、キー __PYCODE_3__ を値 __PYCODE_4__ とともに保存します。 - __PYCODE_6__ __PYCODE_7__ が以前に __PYCODE_8__ で呼び出されたような値を返します。このような値が複数ある場合は、最大の __PYCODE_9__ に関連付けられた値を返します。値がない場合は、__PYCODE_10__ が返されます。 ---パイセップ--- トップ150インタビュー ---パイセップ--- 二分探索 ---パイセップ--- 「時間ベースのキー値ストア」問題は、二分探索セクションの重要な課題です。 ---パイセップ--- この実装は、__PYTERM_0__ の簡単なレベルのロジックに焦点を当てています。 ---パイセップ--- 当社は、提供するソリューションにおいて技術的な正確さとコードの読みやすさを優先します。 ---パイセップ--- アルゴリズム工学 ---パイセップ--- 競技プログラミング ---パイセップ--- 技術的評価 ---パイセップ--- 時間ベースのキー値ストアのロジック フローを視覚化します。 ---パイセップ--- 時間ベースのキー値ストアの問題ステートメントを注意深く読んでください。 ---パイセップ--- 単純な反復ソリューションの草案を作成します。 ---パイセップ--- 冗長な計算を探します。 ---パイセップ--- プロセスを高速化するには、ハッシュまたはソートを使用します。 ---パイセップ--- 実稼働標準に合わせてコードをクリーンアップします。 ---パイセップ--- 空の入力構造体 ---パイセップ--- 単一要素入力 ---パイセップ--- 大きな数値限界 ---パイセップ--- 二分探索アプローチのロジックを説明してください。 ---パイセップ--- null または空の入力などの特殊なケースについて説明します。 ---パイセップ--- 標準の二分探索問題のプロパティが適用されます。 ---パイセップ--- セットやヒープなどの二分探索固有のデータ構造の使用を検討してください。 ---パイセップ--- 2 つのソートされた配列の中央値 ---パイセップ--- 「2 つのソートされた配列の中央値」問題に関する詳細なガイドと __PYTERM_0__ の実装。 ---パイセップ--- サイズがそれぞれ __PYCODE_2__ と __PYCODE_3__ の 2 つの並べ替えられた配列 __PYCODE_0__ と __PYCODE_1__ がある場合、2 つの並べ替えられた配列の中央値を返します。 全体的な実行時間の複雑さは O(log(m+n)) になるはずです。 関数 __PYCODE_4__ を作成します。 ---パイセップ--- トップ150インタビュー ---パイセップ--- 二分探索 ---パイセップ--- 「2 つのソートされた配列の中央値」問題は、二分探索セクションの重要な課題です。 ---パイセップ--- この実装は、__PYTERM_0__ のハードレベルのロジックに焦点を当てています。 ---パイセップ--- 当社は、提供するソリューションにおいて技術的な正確さとコードの読みやすさを優先します。 ---パイセップ--- アルゴリズム工学 ---パイセップ--- 競技プログラミング ---パイセップ--- 技術的評価 ---パイセップ--- 2 つのソートされた配列の中央値のロジック フローを視覚化します。 ---パイセップ--- 2 つの並べ替えられた配列の中央値に関する問題文を注意深く読んでください。 ---パイセップ--- 単純な反復ソリューションの草案を作成します。 ---パイセップ--- 冗長な計算を探します。 ---パイセップ--- プロセスを高速化するには、ハッシュまたはソートを使用します。

Detailed guide and Python implementation for the 'Time Based Key Value Store' problem.

問題提起

簡単

Design a time-based key-value data structure that can store multiple values for the same key at different time stamps and retrieve the key's value at a certain timestamp.

Implement the TimeMap class:

- TimeMap() Initializes the object.

- set(key: str, value: str, timestamp: int) Stores the key key with the value value at the given time timestamp.

- get(key: str, timestamp: int) -> str Returns a value such that set was called previously, with timestamp_prev <= timestamp. If there are multiple such values, it returns the value associated with the largest timestamp_prev. If there are no values, it returns "".

制約
  • 1 <= key.length, value.length <= 100
  • key and value consist of lowercase English letters and digits
  • 1 <= timestamp <= 10^7
  • All timestamps of set are strictly increasing for each key
  • At most 2 * 10^5 calls will be made to set and get

Example 1
Input
["TimeMap", "set", "get", "get", "set", "get", "get"]
[[], ["foo", "bar", 1], ["foo", 1], ["foo", 3], ["foo", "bar2", 4], ["foo", 4], ["foo", 5]]
Output
[None, None, "bar", "bar", None, "bar2", "bar2"]
Explanation

set("foo", "bar", 1): stores bar at time 1. get("foo", 1): returns "bar". get("foo", 3): returns "bar" (latest value at or before time 3). set("foo", "bar2", 4): stores bar2 at time 4. get("foo", 4): returns "bar2". get("foo", 5): returns "bar2".

Need a Hint?
Consider using Binary Search-specific data structures like sets or heaps.
Edge Cases to Watch
  • Empty input structures
  • Single element inputs
  • Large numerical bounds

解決する準備はできましたか?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

エディタで開く
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

推奨される Python リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。