From 7286a4c3de5daece6758375d16256027a11abf69 Mon Sep 17 00:00:00 2001 From: Bhavil Ahuja <76178941+Bhavil-Ahuja@users.noreply.github.com> Date: Wed, 19 Oct 2022 12:44:51 +0530 Subject: [PATCH] Create SubarraySumEqualsK.java --- Java/SubarraySumEqualsK.java | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Java/SubarraySumEqualsK.java diff --git a/Java/SubarraySumEqualsK.java b/Java/SubarraySumEqualsK.java new file mode 100644 index 0000000..0868288 --- /dev/null +++ b/Java/SubarraySumEqualsK.java @@ -0,0 +1,28 @@ +import java.util.*; + +public class SubarraySumEqualsK { + + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int n = sc.nextInt(); + int[] arr = new int[n]; + for (int i = 0; i < n; i++) arr[i] = sc.nextInt(); + int k = sc.nextInt(); + System.out.println(subarraySum(arr, k)); + } + + public static int subarraySum(int[] nums, int k) { + Map map = new HashMap<>(); + int n = nums.length, sum = 0, res = 0; + map.put(sum, 1); + for (int i = 0; i < n; i++) { + sum += nums[i]; + if (map.containsKey(sum - k)) { + res += map.get(sum - k); + } + if (map.containsKey(sum)) map.put(sum, map.get(sum) + 1); + else map.put(sum, 1); + } + return res; + } +}