Skip to content

Commit d490c2b

Browse files
committed
Two-Hundred-Forty-Nine Commit: Add Subarray Sums Divisible by K problem to Prefix Sum Section
1 parent 6be0a25 commit d490c2b

8 files changed

+31
-6
lines changed

src/_0_1_Knapsack_Dynamic_Programming/Problem_1_0_1_Knapsack.java renamed to src/Dynamic_Programming/_0_1_Knapsack_Dynamic_Programming/Problem_1_0_1_Knapsack.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package _0_1_Knapsack_Dynamic_Programming;
1+
package Dynamic_Programming._0_1_Knapsack_Dynamic_Programming;
22

33
// Problem Statement: 0/1 Knapsack (medium)
44
// LeetCode Question:

src/_0_1_Knapsack_Dynamic_Programming/Problem_2_Equal_Sum_Partition.java renamed to src/Dynamic_Programming/_0_1_Knapsack_Dynamic_Programming/Problem_2_Equal_Sum_Partition.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package _0_1_Knapsack_Dynamic_Programming;
1+
package Dynamic_Programming._0_1_Knapsack_Dynamic_Programming;
22

33
// Problem Statement: Equal Subset Sum Partition (medium)
44
// LeetCode Question: 416. Partition Equal Subset Sum

src/_0_1_Knapsack_Dynamic_Programming/Problem_3_Equal_Subset_Sum_Partition.java renamed to src/Dynamic_Programming/_0_1_Knapsack_Dynamic_Programming/Problem_3_Equal_Subset_Sum_Partition.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package _0_1_Knapsack_Dynamic_Programming;
1+
package Dynamic_Programming._0_1_Knapsack_Dynamic_Programming;
22

33
// Problem Statement: Subset Sum (medium)
44
// LeetCode Question:

src/_0_1_Knapsack_Dynamic_Programming/Problem_4_Minimum_Subset_Sum_Difference.java renamed to src/Dynamic_Programming/_0_1_Knapsack_Dynamic_Programming/Problem_4_Minimum_Subset_Sum_Difference.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package _0_1_Knapsack_Dynamic_Programming;
1+
package Dynamic_Programming._0_1_Knapsack_Dynamic_Programming;
22

33
// Problem Statement: Minimum Subset Sum Difference (hard)
44
// LeetCode Question: 2035. Partition Array Into Two Arrays to Minimize Sum Difference

src/_0_1_Knapsack_Dynamic_Programming/Problem_5_Count_Of_Subset_Sum.java renamed to src/Dynamic_Programming/_0_1_Knapsack_Dynamic_Programming/Problem_5_Count_Of_Subset_Sum.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package _0_1_Knapsack_Dynamic_Programming;
1+
package Dynamic_Programming._0_1_Knapsack_Dynamic_Programming;
22

33
// Problem Statement: Count of Subset Sum (hard)
44
// LeetCode Question:

src/_0_1_Knapsack_Dynamic_Programming/Problem_6_Target_Sum.java renamed to src/Dynamic_Programming/_0_1_Knapsack_Dynamic_Programming/Problem_6_Target_Sum.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package _0_1_Knapsack_Dynamic_Programming;
1+
package Dynamic_Programming._0_1_Knapsack_Dynamic_Programming;
22

33
// Problem Statement: Target Sum (hard)
44
// LeetCode Question: 494. Target Sum
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package Prefix_Sum;
2+
3+
// Problem Statement: Subarray Sums Divisible by K
4+
// LeetCode Question: 974. Subarray Sums Divisible by K
5+
6+
import java.util.HashMap;
7+
8+
public class Problem_5_SubArray_Sums_Divisible_By_K {
9+
public int subarraysDivByK(int[] nums, int k) {
10+
11+
HashMap<Integer, Integer> remainderCount = new HashMap<>();
12+
remainderCount.put(0, 1);
13+
int cumulativeSum = 0, count = 0;
14+
15+
for (int num : nums) {
16+
cumulativeSum += num;
17+
int remainder = cumulativeSum % k;
18+
if (remainder < 0) remainder += k;
19+
count += remainderCount.getOrDefault(remainder, 0);
20+
remainderCount.put(remainder, remainderCount.getOrDefault(remainder, 0) + 1);
21+
}
22+
23+
return count;
24+
}
25+
}

0 commit comments

Comments
 (0)