Minimize the value |(A[0] + ... + A[P-1]) - (A[P] + ... + A[N-1])|.
- Difficulty Level: Easy
- Question URL: https://app.codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/
- Time Complexity:
Solution:
Solution to Codility's Tape Equilibrium problem which is from the Codility Lesson 3: Time Complexity and, is solved in Java 8 with 100% performance and correctness scores. The goal here is to minimize the value |(a[0] + ... + a[p-1]) - (a[p] + ... + a[n-1])|. You can find the question of this TapeEquilibrium problem in the Codility website.
package Codility.Lesson3;
import java.util.*;
public class TapeEquilibrium {
public TapeEquilibrium() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int input[] = {-1000, 1000};
int result = solution(input);
System.out.println (result);
}
public static int solution(int[] A) {
// write your code in Java SE 8
int sumA =0, sumB = 0, sum = 0;
for(int i=0; i<A.length; i++) {
sum += A[i];
}
int minDifference = Integer.MAX_VALUE;
int currentDifference = Integer.MAX_VALUE;
for( int i =1 ; i<A.length; i++){
sumA += A[i-1];
sumB = sum-sumA;
currentDifference = (int) Math.abs(sumA - sumB);
minDifference = Math.min(currentDifference, minDifference);
}
return minDifference;
}
}