Skip to content

Commit

Permalink
TapeEquilibrium
Browse files Browse the repository at this point in the history
  • Loading branch information
adrianiacobghiula committed Jun 2, 2020
1 parent aabdefc commit 3cdaabe
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 1 deletion.
25 changes: 25 additions & 0 deletions src/main/java/codility/p03_time_complexity/TapeEquilibrium.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package codility.p03_time_complexity;

/*
https://app.codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/
*/
public class TapeEquilibrium {

/*
https://app.codility.com/demo/results/training2QRQ7D-TBR/
*/
public int solution(int[] A) {
long sum = 0;
for (int value : A) sum += value;

long firstSum = A[0];
long secondSum = sum - A[0];
long minDifference = Math.abs(secondSum - firstSum);
for (int p = 1; p < A.length - 1; p++) {
firstSum += A[p];
secondSum -= A[p];
minDifference = Math.min(minDifference, Math.abs(secondSum - firstSum));
}
return (int) minDifference;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import static org.assertj.core.api.Assertions.assertThat;

public class PermMissingElemTest {
PermMissingElem permMissingElem = new PermMissingElem();
PermMissingElem permMissingElem;

@BeforeEach
public void init() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package codility.p03_time_complexity;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import static org.assertj.core.api.Assertions.assertThat;

public class TapeEquilibriumTest {

TapeEquilibrium tapeEquilibrium;

@BeforeEach
public void init() {
tapeEquilibrium = new TapeEquilibrium();
}

@Test
public void sample1() {
int minimalDifference = tapeEquilibrium.solution(new int[]{3, 1, 2, 4, 3});
assertThat(minimalDifference).isEqualTo(1);
}

}

0 comments on commit 3cdaabe

Please sign in to comment.