Advertisement
Guest User

Untitled

a guest
Apr 1st, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. class Solution:
  2. def singleNumber(self, nums: List[int]) -> int:
  3. numeriUsciti = {} #Creo il dizionario, i dizionari hanno la forma {key:value}
  4. for n in nums: #O(n) Ciclo su nums che ha n numeri
  5.  
  6. #Occhio all'ordine di questi if se fossero al contrario, l'esecuzione entrebbe su entrambi e ci darebbe risultati sballati di 1
  7. if n in numeriUsciti: #Ogni volta che lo rivelo tra i numeri usciti
  8. numeriUsciti[n] += 1
  9. if n not in numeriUsciti: #Se il numero non è ancora uscito
  10. numeriUsciti[n] = 1 #Imposto alla chiave (il numero) il numero di volte che l'ho visto (1)
  11.  
  12. #print(numeriUsciti) Scommentami per vedere il dizionario che si è creato (prova su spiderstor)
  13.  
  14. for n in numeriUsciti.keys(): #O(n) Ciclo sulle chiavi del dizionario che ha n valori
  15. if numeriUsciti[n] == 1: #Il numero che cerchiamo è quello che è uscito solo una volta
  16. return n
  17.  
  18. #Total complexity O(2n) -> O(n)
  19. #Total memory footprint O(n)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement