Java Subarray | HackerRank Solution

Hello coders, today we are going to solve Java Subarray HackerRank Solution.

Java Subarray

Problem

We define the following:

  • A subarray of an n-element array is an array composed from a contiguous block of the original array’s elements. For example, if array = [1,2,3], then the subarrays are [1], [2], [3], [1,2], [2,3], and [1,2,3]. Something like [1,3]would not be a subarray as it’s not a contiguous subsection of the original array.
  • The sum of an array is the total sum of its elements.
  • An array’s sum is negative if the total sum of its elements is negative.
  • An array’s sum is positive if the total sum of its elements is positive.

Given an array of n integers, find and print its number of negative subarrays on a new line.

Input Format

The first line contains a single integer, n, denoting the length of array A = [a0, a1, . . . , an-1].
The second line contains n space-separated integers describing each respective element, ai, in array A.

Constraints

  • 1 ≤ n 100
  • -104 ai 104

Output Format

Print the number of subarrays of A having negative sums.

Sample Input

 5
 1 -2 4 -5 1

Sample Output

 9

Explanation

There are nine negative subarrays of A = [ 1, -2, 4, -5, 1]:

  1. [1:1] ⇒ -2
  2. [3:3] ⇒ -5
  3. [0:1] ⇒ 1 + -2 = -1
  4. [2:3] ⇒ 4 + -5 = -1
  5. [3:4] ⇒ -5 + 1 = -4
  6. [1:3] ⇒ -2 + 4 + -5 = -3
  7. [0:3] ⇒ 1 + -2 + 4 + -5 = -2
  8. [1:4] ⇒ -2 + 4 + -5 + 1 = -2
  9. [0:4] ⇒ 1 + -2 + 4 + -5 + 1 = -1

Thus, we print 9 on a new line.

Solution – Java Subarray

import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        int n,sum=0,c=0;
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        int[] a = new int[n];
        for(int i=0;i<n;i++){
            a[i] = sc.nextInt();
        }
        for(int i=0;i<n;i++)
        {
            for(int j=i;j<n;j++)
            {
                sum = 0;
                for(int k=i;k<=j;k++)
                {
                    sum+=a[k];
                   
                }
                 if(sum<0)c++;
            }
        }
        System.out.print(c);
    }
    
}

Disclaimer: The above Problem ( Java Subarray ) is generated by Hacker Rank but the Solution is Provided by CodingBroz. This tutorial is only for Educational and Learning Purpose.

Leave a Comment

Your email address will not be published.