# MinAbsSumOfTwo

It seems i broke the codility test, as it returns 100% correctnes, 72% performance, and simply wrong answers for random small, medium and large. I cannot see what is wrong with this code here, so please help ðŸ™‚

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
function solution(A) { A.sort(); var start = 0; end = A.length - 1, min = Number.MAX_SAFE_INTEGER; while( start <= end ){ min = Math.min( min, Math.abs( A[start] + A[start] ), Math.abs( A[end] + A[end] ), Math.abs( A[start] + A[end] ) ) if( Math.abs( A[start] ) > Math.abs( A[end] ) ){ start++; } else if( Math.abs( A[start] ) === Math.abs( A[end] ) ){ start++; end--; } else{ end--; } } return min; } |

Let A be a non-empty zero-indexed array consisting of N integers.

The abs sum of two for a pair of indices (P, Q) is the absolute value |A[P] + A[Q]|, for 0 â‰¤ P â‰¤ Q < N.

For example, the following array A:

A[0] = 1

A[1] = 4

A[2] = -3

has pairs of indices (0, 0), (0, 1), (0, 2), (1, 1), (1, 2), (2, 2).

The abs sum of two for the pair (0, 0) is A[0] + A[0] = |1 + 1| = 2.

The abs sum of two for the pair (0, 1) is A[0] + A[1] = |1 + 4| = 5.

The abs sum of two for the pair (0, 2) is A[0] + A[2] = |1 + (âˆ’3)| = 2.

The abs sum of two for the pair (1, 1) is A[1] + A[1] = |4 + 4| = 8.

The abs sum of two for the pair (1, 2) is A[1] + A[2] = |4 + (âˆ’3)| = 1.

The abs sum of two for the pair (2, 2) is A[2] + A[2] = |(âˆ’3) + (âˆ’3)| = 6.

Write a function:

function solution(A);

that, given a non-empty zero-indexed array A consisting of N integers, returns the minimal abs sum of two for any pair of indices in this array.

For example, given the following array A:

A[0] = 1

A[1] = 4

A[2] = -3

the function should return 1, as explained above.

Given array A:

A[0] = -8

A[1] = 4

A[2] = 5

A[3] =-10

A[4] = 3

the function should return |(âˆ’8) + 5| = 3.

Assume that:

N is an integer within the range [1..100,000];

each element of array A is an integer within the range [âˆ’1,000,000,000..1,000,000,000].

Complexity:

expected worst-case time complexity is O(N*log(N));

expected worst-case space complexity is O(N), beyond input storage (not counting the storage required for input arguments).

Elements of input arrays can be modified.