我解決一個問題在本文給出了找到O(1)的空間和O(n)的時間
鑑於包含n + 1點的整數,其中每個整數是1和n之間的陣列NUMS(包括重複的數),證明至少有一個重複號碼必須存在。假設只存在一個重複的號碼,找到重複一個在O(n)的時間和O(1)空間複雜度
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
我得到了解決辦法接受,但有人告訴我,這既不是O(1 )空間也不O(n)時間。
任何人都可以請幫我理解爲什麼?
這可能是[在O(n)和恆定空間中查找重複](https://stackoverflow.com/questions/9072600/find-repeating-in-on-and-constant-space)和/或[如何找到算法的時間複雜度](https://stackoverflow.com/questions/11032015/how-to-find-time-complexity-of-an-algorithm)或[時間複雜度的權力()]( https://stackoverflow.com/questions/5231096/time-complexity-of-power) – Dukeling