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