Skip to content

Commit 4616b63

Browse files
committed
file name changed
1 parent a216cb8 commit 4616b63

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.thealgorithms.dynamicprogramming;
2+
3+
public class SumOfSubset {
4+
5+
public static void main(String[] args) {
6+
int[] arr = {7, 3, 2, 5, 8};
7+
int Key = 14;
8+
9+
if (subsetSum(arr, arr.length - 1, Key)) {
10+
System.out.print("Yes, that sum exists");
11+
} else {
12+
System.out.print("Nope, that number does not exist");
13+
}
14+
}
15+
16+
public static boolean subsetSum(int[] arr, int num, int Key) {
17+
if (Key == 0) {
18+
return true;
19+
}
20+
if (num < 0 || Key < 0) {
21+
return false;
22+
}
23+
24+
boolean include = subsetSum(arr, num - 1, Key - arr[num]);
25+
boolean exclude = subsetSum(arr, num - 1, Key);
26+
27+
return include || exclude;
28+
}
29+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.thealgorithms.dynamicprogramming;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
class SumOfSubsetTest {
8+
9+
@Test
10+
void basicCheck() {
11+
assertEquals(true, Sum_Of_Subset.subsetSum(new int[] {7, 3, 2, 5, 8}, 4, 14));
12+
13+
assertEquals(true, Sum_Of_Subset.subsetSum(new int[] {4, 3, 2, 1}, 3, 5));
14+
15+
assertEquals(false, Sum_Of_Subset.subsetSum(new int[] {1, 2, 7, 10, 9}, 4, 14));
16+
17+
assertEquals(false, Sum_Of_Subset.subsetSum(new int[] {2, 15, 1, 6, 7}, 4, 4));
18+
19+
assertEquals(true, Sum_Of_Subset.subsetSum(new int[] {1, 7, 2, 9, 10}, 4, 13));
20+
}
21+
}

0 commit comments

Comments
 (0)