From 1279712a8f68b8983450f68ef21c1ef8531b88be Mon Sep 17 00:00:00 2001 From: Trishun Date: Fri, 28 Oct 2022 21:57:58 +0200 Subject: [PATCH] Resolves Negative Subarray Task --- .../datastructures/subarray/Solution.java | 30 +++++++++++++++++++ .../datastructures/subarray/SolutionTest.java | 28 +++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 src/main/java/eu/ztsh/training/hackerrank/datastructures/subarray/Solution.java create mode 100644 src/test/java/eu/ztsh/training/hackerrank/datastructures/subarray/SolutionTest.java diff --git a/src/main/java/eu/ztsh/training/hackerrank/datastructures/subarray/Solution.java b/src/main/java/eu/ztsh/training/hackerrank/datastructures/subarray/Solution.java new file mode 100644 index 0000000..8ce8d32 --- /dev/null +++ b/src/main/java/eu/ztsh/training/hackerrank/datastructures/subarray/Solution.java @@ -0,0 +1,30 @@ +package eu.ztsh.training.hackerrank.datastructures.subarray; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Arrays; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.IntStream; + +/** + * Java Subarray task. + * source: https://www.hackerrank.com/challenges/java-negative-subarray/problem + */ +public class Solution { + + public static void main(String[] args) throws IOException { + var reader = new BufferedReader(new InputStreamReader(System.in)); + var n = Integer.parseInt(reader.readLine()); + var array = Arrays.stream(reader.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); + var counter = new AtomicInteger(0); + IntStream.range(0, n).forEach(begin -> IntStream.range(begin, n + 1) + .forEach(end -> { + if (Arrays.stream(array, begin, end).sum() < 0) { + counter.incrementAndGet(); + } + })); + System.out.println(counter.get()); + } + +} diff --git a/src/test/java/eu/ztsh/training/hackerrank/datastructures/subarray/SolutionTest.java b/src/test/java/eu/ztsh/training/hackerrank/datastructures/subarray/SolutionTest.java new file mode 100644 index 0000000..59cc9f8 --- /dev/null +++ b/src/test/java/eu/ztsh/training/hackerrank/datastructures/subarray/SolutionTest.java @@ -0,0 +1,28 @@ +package eu.ztsh.training.hackerrank.datastructures.subarray; + +import java.util.List; +import eu.ztsh.training.hackerrank.HackerRankTest; +import eu.ztsh.training.hackerrank.SolutionClassDescription; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +@DisplayName("HackerRank challenges: Java Subarray") +class SolutionTest extends HackerRankTest { + + @Test + public void testCase0() { + simpleAssert( + List.of("5", "1 -2 4 -5 1"), + List.of("9") + ); + } + + + @Override + protected SolutionClassDescription getSolutionClassDescription() { + return new SolutionClassDescription(Solution.class); + } + +} \ No newline at end of file