我猜測的一個問題如下:算法 - 計算O(n)中排序數組中所有對數相等的數?
比方說,我們有一個排序數組{1,1,1,1,2,2,4,4,4}。
現在,鑑於我們可以清楚地看到,我們有1對6對,1對2和3對4對(10對)。你將如何構造一個在O(n)中找到這些對的算法?
我已計數在一個陣列的對並且這樣做這樣的算法:
Arrays.sort(array);
int counter = 0;
for(int i = 0; i<array.length; i++) {
for(int j = i+1; j<array.length; j++) {
if(j!=i && array[j] == array[i]) {
\t counter++;
\t }
}
}
return counter;
但這運行在O(N^2),我想(爲新手,我與算法),有一個更好的解決方案,以獲得相同的結果只使用一個for循環或多個while循環?
我想聽聽你的想法!
「清楚地看到,我們對1的6對」 < - 你失去了我那裏。 –
你提到的'6'對'1',你的意思是'4選擇2 = 6'嗎? 2'2'對怎麼樣?請詳細解釋。 – Codor
_clearly_你說... – Gabriel