w3resource

Java: Find the total number of continuous subarrays in a specified array of integers

Java Basic: Exercise-202 with Solution

Continuous Subarrays with Target Sum

Write a Java program to find the total number of continuous subarrays in a given array of integers whose sum equals an integer.

Example:
Original Array: [4, 2, 3, 3, 7, 2, 4]
Value of k: 6 Total number of continuous subarrays: 3

Visual Presentation:

Java Basic Exercises: Find the total number of continuous subarrays in a specified array of integers

Sample Solution:

Java Code:

// Import utility classes from java.util package
import java.util.*;
// Main class
public class Main {
    // Main method to execute the solution
    public static void main(String[] args) {
        // Sample input array and value of k for counting continuous subarrays
        int[] nums = {4, 2, 3, 3, 7, 2, 4};
        int k = 6;
        // Display the original array
        System.out.print("Original Array: " + Arrays.toString(nums));
        // Display the value of k
        System.out.print("\nValue of k: " + k);
        // Display the total number of continuous subarrays whose sum equals k
        System.out.print("\nTotal number of continuous subarrays: " + max_SubArray(nums, k));
    }
    // Function to find the total number of continuous subarrays whose sum equals k
    public static int max_SubArray(int[] nums, int k) {
        int ctr = 0; // Counter for total subarrays found
        int sum = 0; // Variable to track current sum
        Map<Integer, Integer> map = new HashMap<>(); // HashMap to store prefix sums and their counts
        // Initialize the map with a sum of 0 and count 1 (base case)
        map.put(0, 1);
        // Iterate through the input array
        for (int i = 0; i < nums.length; i++) {
            sum += nums[i]; // Update the current sum
            // Check if there exists a prefix sum at (sum - k), increment counter if found
            if (map.containsKey(sum - k)) {
                ctr += map.get(sum - k);
            }
            // Update the count of the current sum in the map
            map.put(sum, map.getOrDefault(sum, 0) + 1);
        }
        // Return the total count of continuous subarrays whose sum equals k
        return ctr;
    }
}

Sample Output:

Original Array: [4, 2, 3, 3, 7, 2, 4]
Value of k: 6
Total number of continuous subarrays: 3

Flowchart:

Flowchart: Java exercises: Find the total number of continuous subarrays in a specified array of integers

Java Code Editor:

Company:  Google

Contribute your code and comments through Disqus.

Previous: Write a Java program to divide a given array of integers into given k non-empty subsets whose sums are all equal. Return true if all sums are equal otherwise return false.
Next: Write a Java program to find the contiguous subarray of given length k which has the maximum average value of a given array of integers. Display the maximum average value.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/java-exercises/basic/java-basic-exercise-202.php