下面給出的codility測試:請幫我理解這個codility測試
給出一個陣列
N
的A
整數,我們得出N
光盤中的2D平面使得I
個 盤集中在(0,I)
,半徑爲A[I]
。我們說第J
號光盤和 K-th disc intersect if
J≠Kand
J-th and
第K個光盤至少有一個共同點 點。寫功能
class Solution { public int solution(int[] A); }
,給定陣列A
描述N
光盤,如上所述,返回對相交 光盤的數量。例如,給定N=6
和:
A[0] = 1 A[1] = 5 A[2] = 2
A[3] = 1 A[4] = 4 A[5] = 0
相交光盤出現在11雙元件的:
0和1,
0和2,
0和4,
1和2,
1和3,
1和4,
1和5,
2和3,
2和4,
3和4,
4和5所以函數應該返回
11
。如果交叉對的數量超過10,000,000,該函數應返回
−1
。
假設:-
N
是範圍[0..100,000]
內的整數;
- 數組A的每個元素都是[0..2147483647]範圍內的整數。複雜
- 預期最壞情況下的時間複雜度是O(N *日誌(N));
- 預期最壞情況下的空間複雜度爲O(N),超出輸入存儲空間(不包括輸入參數所需的存儲空間)。
在哪裏這些11對從何而來,因爲只有6元?
這些對來自兩個元素的30種可能的組合,使用給定的規則。 – keshlam