Skip to content

Instantly share code, notes, and snippets.

@mrfarhadir
Last active January 14, 2020 19:16
Show Gist options
  • Save mrfarhadir/3c19df4e3145d387270173b21a9bcb3a to your computer and use it in GitHub Desktop.
Save mrfarhadir/3c19df4e3145d387270173b21a9bcb3a to your computer and use it in GitHub Desktop.
const algo = arr => {
let sum_half = 0
let i = 0
let p = 0
while(i < arr.length)
sum_half += arr[i++]
sum_half /= 2
let left_side_sum = 0
let last_diff = 0
for(i in arr) {
left_side_sum += arr[i]
let diff = sum_half - left_side_sum
if (last_diff > 0 && diff < 0) {
p = i
break;
}
last_diff = diff
}
return p
}
const arr = [5,3,7,10,1,4,6]
let p = algo(arr)
@mrfarhadir
Copy link
Author

I found this challenge exciting and decided to solve.
A non-empty zero-indexed array A consisting of N integers is given. Array A represents
numbers on a tape.
Any integer P, such that 0 < P < N, splits this tape into two non-empty parts: A[0], A[1], ..., A[P −
1] and A[P], A[P + 1], ..., A[N − 1].
The dif ference between the two parts is the value of: |(A[0] + A[1] + ... + A[P − 1]) − (A[P] + A[P+ 1] + ... + A[N − 1])|
In other words, it is the absolute difference between the sum of the first part and the sum of the
second part.
For example, consider array A such that:
A[0] = 3
A[1] = 1
A[2] = 2
A[3] = 4
A[4] = 3
We can split this tape in four places:
● P = 1, difference = |3 − 10| = 7

● P = 2, difference = |4 − 9| = 5

● P = 3, difference = |6 − 7| = 1

● P = 4, difference = |10 − 3| = 7

Write a function:
class Solution { public int solution(int[] A); }
that, given a non-empty zero-indexed array A of N integers, returns the minimal difference that
can be achieved.
For example, given:
A[0] = 3
A[1] = 1
A[2] = 2
A[3] = 4
A[4] = 3
the function should return 1, as explained above.
Assume that:
● N is an integer within the range [2..100,000];
● each element of array A is an integer within the range [−1,000..1,000].
Complexity:
● expected worst-case time complexity is O(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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment