2016-07-20 139 views
1

有一個數組除了一個數字(比如magic-number)都是唯一的。神奇數字 重複自己超過數組大小的一半。例如2,10,10,10,3.使用任何額外空間並且不對其進行排序,找到沒有 的幻數。現在有什麼方法可以在O(n)中完成它。在唯一編號數組中尋找重複的數字

+0

「沒有使用任何額外的空間」,你的意思是說你不能分配另一個搜索到的數字列表?基本上,只有列表的指針/索引是有效的? – user1676075

+0

當然你總是需要指針和索引 –

回答

2

檢查每個元素對其鄰居,如果任何相等,那麼你已經找到了數字。 O(N)

如果第一次測試沒有發現號碼,然後你在以下情況:

10,2,10,3,10. 

在這種情況下,數組中的第一個數字是一個神奇的數字。 O(1)