TapeEquilibrium

Minimize the value |(A[0] + ... + A[P-1]) - (A[P] + ... + A[N-1])|.


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;
    }
}