From 3f0b8357e2702b5dba165b1f372b75b64da5a2cd Mon Sep 17 00:00:00 2001 From: Bhishmadev Date: Thu, 25 Jan 2024 11:08:45 +0530 Subject: [PATCH 1/3] Updated main and test --- .../dynamicprogramming/SumOfSubset.java | 18 ++++++++++++++++ .../dynamicprogramming/SumOfSubsetTest.java | 21 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 src/main/java/com/thealgorithms/dynamicprogramming/SumOfSubset.java create mode 100644 src/test/java/com/thealgorithms/dynamicprogramming/SumOfSubsetTest.java diff --git a/src/main/java/com/thealgorithms/dynamicprogramming/SumOfSubset.java b/src/main/java/com/thealgorithms/dynamicprogramming/SumOfSubset.java new file mode 100644 index 000000000000..622f8b146d96 --- /dev/null +++ b/src/main/java/com/thealgorithms/dynamicprogramming/SumOfSubset.java @@ -0,0 +1,18 @@ +package com.thealgorithms.dynamicprogramming; + +public class SumOfSubset { + + public static boolean subsetSum(int[] arr, int num, int Key) { + if (Key == 0) { + return true; + } + if (num < 0 || Key < 0) { + return false; + } + + boolean include = subsetSum(arr, num - 1, Key - arr[num]); + boolean exclude = subsetSum(arr, num - 1, Key); + + return include || exclude; + } +} diff --git a/src/test/java/com/thealgorithms/dynamicprogramming/SumOfSubsetTest.java b/src/test/java/com/thealgorithms/dynamicprogramming/SumOfSubsetTest.java new file mode 100644 index 000000000000..1d8aacd79015 --- /dev/null +++ b/src/test/java/com/thealgorithms/dynamicprogramming/SumOfSubsetTest.java @@ -0,0 +1,21 @@ +package com.thealgorithms.dynamicprogramming; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class SumOfSubsetTest { + + @Test + void basicCheck() { + assertEquals(true, SumOfSubset.subsetSum(new int[] {7, 3, 2, 5, 8}, 4, 14)); + + assertEquals(true, SumOfSubset.subsetSum(new int[] {4, 3, 2, 1}, 3, 5)); + + assertEquals(false, SumOfSubset.subsetSum(new int[] {1, 2, 7, 10, 9}, 4, 14)); + + assertEquals(false, SumOfSubset.subsetSum(new int[] {2, 15, 1, 6, 7}, 4, 4)); + + assertEquals(true, SumOfSubset.subsetSum(new int[] {1, 7, 2, 9, 10}, 4, 13)); + } +} From bd26962978412d4702da74222bfafa4329f18b8c Mon Sep 17 00:00:00 2001 From: Bhishmadev Date: Fri, 26 Jan 2024 14:58:19 +0530 Subject: [PATCH 2/3] removed --- .../dynamicprogramming/Sum_Of_Subset.java | 29 ------------------- 1 file changed, 29 deletions(-) delete mode 100644 src/main/java/com/thealgorithms/dynamicprogramming/Sum_Of_Subset.java diff --git a/src/main/java/com/thealgorithms/dynamicprogramming/Sum_Of_Subset.java b/src/main/java/com/thealgorithms/dynamicprogramming/Sum_Of_Subset.java deleted file mode 100644 index 90c07889a57f..000000000000 --- a/src/main/java/com/thealgorithms/dynamicprogramming/Sum_Of_Subset.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.thealgorithms.dynamicprogramming; - -public class Sum_Of_Subset { - - public static void main(String[] args) { - int[] arr = {7, 3, 2, 5, 8}; - int Key = 14; - - if (subsetSum(arr, arr.length - 1, Key)) { - System.out.print("Yes, that sum exists"); - } else { - System.out.print("Nope, that number does not exist"); - } - } - - public static boolean subsetSum(int[] arr, int num, int Key) { - if (Key == 0) { - return true; - } - if (num < 0 || Key < 0) { - return false; - } - - boolean include = subsetSum(arr, num - 1, Key - arr[num]); - boolean exclude = subsetSum(arr, num - 1, Key); - - return include || exclude; - } -} From 21c98cc266cedfd30c1fe718b6bd0890e6331135 Mon Sep 17 00:00:00 2001 From: Piotr Idzik <65706193+vil02@users.noreply.github.com> Date: Fri, 26 Jan 2024 19:24:56 +0100 Subject: [PATCH 3/3] style: reorder test cases --- .../thealgorithms/dynamicprogramming/SumOfSubsetTest.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/thealgorithms/dynamicprogramming/SumOfSubsetTest.java b/src/test/java/com/thealgorithms/dynamicprogramming/SumOfSubsetTest.java index 1d8aacd79015..53c34937cbab 100644 --- a/src/test/java/com/thealgorithms/dynamicprogramming/SumOfSubsetTest.java +++ b/src/test/java/com/thealgorithms/dynamicprogramming/SumOfSubsetTest.java @@ -8,14 +8,10 @@ class SumOfSubsetTest { @Test void basicCheck() { - assertEquals(true, SumOfSubset.subsetSum(new int[] {7, 3, 2, 5, 8}, 4, 14)); - - assertEquals(true, SumOfSubset.subsetSum(new int[] {4, 3, 2, 1}, 3, 5)); - assertEquals(false, SumOfSubset.subsetSum(new int[] {1, 2, 7, 10, 9}, 4, 14)); - assertEquals(false, SumOfSubset.subsetSum(new int[] {2, 15, 1, 6, 7}, 4, 4)); - + assertEquals(true, SumOfSubset.subsetSum(new int[] {7, 3, 2, 5, 8}, 4, 14)); + assertEquals(true, SumOfSubset.subsetSum(new int[] {4, 3, 2, 1}, 3, 5)); assertEquals(true, SumOfSubset.subsetSum(new int[] {1, 7, 2, 9, 10}, 4, 13)); } }