Podczas próby rozwiązania this LeetCode problem natknąłem się na pytanie. Chociaż moje rozwiązanie zostało zaakceptowane przez system, nadal nie mam pojęcia po przeszukaniu przez Internet następującego pytania: What is the time complexity of dict.keys() operation?
Czy zwraca on widok kluczy lub prawdziwej listy (zapisuje w pamięci) kluczy?Jaka jest złożoność czasu w dict.keys() w Pythonie?
Odpowiedz
W języku Python 2 jest to O (n) i tworzy nową listę. W Pythonie 3 jest to O (1), ale nie zwraca listy. Aby narysować losowy element z dyktatury keys
, musisz przekonwertować go na listę.
Wygląda na to, że prawdopodobnie używałeś random.choice(d.keys())
dla części 3 tego problemu. Jeśli tak, to było to O (n), a ty popełniłeś błąd. Musisz albo zaimplementować własną tablicę asocjacyjną, albo utrzymywać oddzielną listę elementów, bez poświęcania wstawiania i usuwania O (1) z przeciętnymi literami.
Użyłem 'return self.elements.keys() [randint (0, len (self.elements) - 1)]' i zostało zaakceptowane ('self.elements jest obiektem dict '). – Jason
@Jason: Tak, to nie jest O (1). – user2357112
Jak powiedziałeś "W Pythonie 3, jest to O (1)". Jeśli 'self.elements.keys()' to 'O (1)', całe wyrażenie będzie działało w 'O (1)'. Jeśli popełniłem błędy, popraw mnie :) – Jason
- 1. Jaka jest złożoność czasu HashMap.containsKey() w java?
- 2. Jaka jest złożoność czasu HashMap.containsValue() w java?
- 3. Jaka jest złożoność czasu przeglądarek HTML DOM
- 4. Jaka jest złożoność czasu funkcji liczenia w clojure?
- 5. jaka jest złożoność czasu metody Array # uniq w ruby?
- 6. Jaka jest złożoność czasu pojawiania się elementów z listy w Pythonie?
- 7. Jaka jest złożoność czasu A * i jak jest uzyskiwana?
- 8. Jaka jest złożoność czasu dodawania elementu na początku tablicy ArrayList?
- 9. Jaka jest złożoność set_intersection w C++?
- 10. Jaka jest złożoność czasu przejścia drzew przy użyciu plonu?
- 11. Złożoność czasu mnożenia macierzy w MATLAB
- 12. Złożoność czasu system.out.println
- 13. Jaka jest najlepsza złożoność zagadek N-Queens?
- 14. Jaka jest złożoność złożonych lin zrównoważonych?
- 15. Złożoność czasu dla java ArrayList
- 16. Złożoność czasu zabawy()?
- 17. Jaka jest najgorsza złożoność sortowania kubełków?
- 18. Jaka jest złożoność czasowa inicjowania macierzy?
- 19. Jaka jest złożoność Morris Traversal o (n)?
- 20. Dlaczego funkcja dict.keys() w Pythonie zwraca listę, a nie zbiór?
- 21. Jaka jest złożoność tego kodu manipulacji ciągami?
- 22. Jaka jest asymptotyczna złożoność operacji GroupBy?
- 23. Spark: Jaka jest złożoność czasu algorytmu połączonych komponentów używanego w GraphX?
- 24. Jaka jest równoważność w Pythonie 3 liter w Pythonie 2?
- 25. Różnice czasu w Pythonie
- 26. Jaka jest zasada EAFP w Pythonie?
- 27. Jaka jest najlepsza metoda w Pythonie?
- 28. Złożoność w algorytmie rekursji
- 29. Jaka jest optymalna konwencja nazewnictwa dla plików testowych w Pythonie?
- 30. Jaka jest złożoność pamięci std :: sort() i std :: sort_heap()?
Jego złożoność to '0 (1)' w Pythonie 3.x. W Pythonie 2.x zwraca listę, więc zapełnienie jej lub wykonanie jakiegoś wyszukiwania zajmuje '0 (n)'. – ozgur
Pytasz o Python2 lub Python3? –
@ozgur - Prawda, ale 'dla _ in {} .keys(): pass' to' O (n) 'w dowolnej wersji. –