私がthis LeetCode problemを解決するとき、私は質問に出会った。 What is the time complexity of dict.keys() operation?
キーのビューまたはキーの実際のリスト(メモリに格納されている)が返されますか?Pythonでのdict.keys()の時間の複雑さは何ですか?
答えて
Python 2では、それはO(n)であり、新しいリストを作成します。 Python 3では、O(1)ですが、リストは返されません。 dictのkeys
からランダムな要素を描画するには、リストに変換する必要があります。
おそらくその問題のパート3にrandom.choice(d.keys())
を使用していたようです。もしそうなら、それはO(n)であり、あなたは間違っています。平均ケースのO(1)の挿入と削除を犠牲にすることなく、独自のハッシュテーブルを実装するか、要素の別のリストを維持する必要があります。
私は 'return self.elements.keys()[randint(0、len(self.elements) - 1)]'を使用して受け入れました( 'self.elementsはdictオブジェクトです')。 – Jason
@Jason:そうです、それはO(1)ではありません。 – user2357112
あなたが「Python 3では、それはO(1)です」と言ったように。 'self.elements.keys()'が 'O(1)'の場合、式全体は 'O(1)'で実行されます。私が間違いを犯した場合は、私を修正してください:) – Jason
- 1. 次のプログラムの時間の複雑さは何ですか?
- 2. 私のコードの時間の複雑さは何ですか?
- 3. 私のコードの時間の複雑さは何ですか
- 4. このアルゴリズムの時間の複雑さは何ですか
- 5. Pythonのdeepcopy()の実行時の複雑さは何ですか?
- 6. HTML DOMルックアップの時間の複雑さは何ですか
- 7. C:qsort関数の時間の複雑さは何ですか?
- 8. 時間の複雑さは、Python
- 9. パスカル・トライアングル・アルゴリズムの時間複雑さは何ですか?
- 10. Linq OrderBy()の時間複雑さは何ですか?ThenBy()メソッドシーケンス?
- 11. Pythonでzip()の時間の複雑さはどのくらいですか?
- 12. Pythonでの文字列連結の時間の複雑さ
- 13. heapqライブラリの関数の時間の複雑さは何ですか
- 14. スキーム内の 'assoc'関数の時間の複雑さは何ですか?
- 15. 時間の複雑さと
- 16. 与えられたスニペットの時間の複雑さは何ですか?
- 17. このコードの実行時の複雑さは何ですか?
- 18. Pythonのサブリストの時間複雑度
- 19. 再帰アルゴリズムの時間複雑さと空間の複雑さはどのようなものですか?オペレーター?
- 20. python str.index時間の複雑度
- 21. 時間の複雑さと空間の複雑さ、空間の複雑さの計算方法
- 22. python 2.7のセットとリストの削除時間の複雑さ
- 23. このアプローチの時間の複雑さ
- 24. Pythonセット操作の時間の複雑さ?
- 25. Python文字列インデックスアクセスの時間の複雑さ?
- 26. pythonジェネレータ時間の複雑さの混乱
- 27. fun()の時間の複雑さ?
- 28. ファイル修正の時間の複雑さ?
- 29. 入力のエンコーディング(時間の複雑さ)
- 30. 時間複雑
複雑さはPython 3.xでは '0(1)'です。 Python 2.xでは、リストを返すので、そのリストに値を設定するか、またはルックアップを実行するには '0(n)'が必要です。 – ozgur
Python2またはPython3について質問していますか? –
@ozgur - どちらのバージョンでも真ですが、 '_ for {} .keys():pass'は' O(n) 'です。 –