Je résoudre une question leetcodetrouver le numéro double avec O (1) l'espace et O (n)
Étant donné un nums de tableau contenant n + 1 entiers où chaque entier est compris entre 1 et n (y compris), prouver qu'au moins un numéro en double doit exister. Supposons qu'il n'y a qu'un seul numéro en double, trouver le double d'un O (n) et O (1) la complexité de l'espace
class Solution(object):
def findDuplicate(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
xor=0
for num in nums:
newx=xor^(2**num)
if newx<xor:
return num
else:
xor=newx
Je suis la solution acceptée, mais on m'a dit qu'il est ni O (1) ni le temps O (n).
quelqu'un peut s'il vous plaît aidez-moi à comprendre pourquoi?
Ceci est probablement un doublon de [Rechercher répétition dans O (n) et espace constant] (https://stackoverflow.com/questions/9072600/find-repeating-in-on-and-constant-space) et/ou [Comment trouver la complexité temporelle d'un algorithme] (https://stackoverflow.com/questions/11032015/how-to-find-time-complexity-of-an-algorithm) ou [Time complex of power()] (https://stackoverflow.com/questions/5231096/time-complexity-of-power) – Dukeling