2014-09-11 68 views

回答

3

薩姆向上從0到n-1,然後發現在陣列的總和數量和丟失的數目是總和 - 陣列的總和

說明:如果總和0 + 1 + 2 + ... + n-1,並且數組也有所有這些數字,除了一個,所以當你添加到0 + 1 + 2 + ... + n-1數組中所有帶有「 - 」前綴的數字時,每個數字將取消他「+」對應物,所以你將留下與陣列中沒有對應物的「+」,所以這是缺少的數字

注意:存儲數字是log(n)位,但在大多數地方(我已經看到)他們不會以位分辨率說話,並且存儲數字是O(1)空間,所以我T依賴它是如何在你的問題中定義

+1

值得注意的是,增加'n'整數並不佔用一個固定的空間,而是一個'log(n)'空間。表示數字「n」所需的位數是「log2(n)」。 – 2014-09-11 10:25:10

+0

這取決於你認爲的空間複雜性,從我所知道的存儲數字是O(1),但你是對的,這取決於它在問題中的定義 – 2014-09-11 10:33:02

+1

編輯我的回答 – 2014-09-11 10:34:46

0

鑑於名單一個(尺寸100)和b在0-99範圍內唯一整數的(99號)與隨機排序。

a = RandomSample[Range[0, 99]] 
b = Take[RandomSample[Range[0, 99]], 99] 

查找b缺少的元素。

element = Total[a]-Total[b] 

使用的語言是Mathematica。

相關問題