public void Test() { BalancePartition partition = new BalancePartition(); int[] nums; int sum; sum = 10; nums = new int[] { 3, 7, 4, 6 }; Test(partition, nums, sum); sum = 5; nums = new int[] { 1, 1, 1, 3, 2, 2 }; Test(partition, nums, sum); sum = 10; nums = new int[] { 3, 2, 1, 1, 6, 7 }; Test(partition, nums, sum); sum = 11; nums = new int[] { 3, 2, 1, 1, 6, 8 }; Test(partition, nums, sum); sum = 6; nums = new int[] { 3, 2, 5 }; Test(partition, nums, sum); nums = new int[] { 66, 90, 7, 6, 32, 16, 2, 78, 69, 88, 85, 26, 3, 9, 58, 65, 30, 96, 11, 31, 99, 49, 63, 83, 79, 97, 20, 64, 81, 80, 25, 69, 9, 75, 23, 70, 26, 71, 25, 54, 1, 40, 41, 82, 32, 10, 26, 33, 50, 71, 5, 91, 59, 96, 9, 15, 46, 70, 26, 32, 49, 35, 80, 21, 34, 95, 51, 66, 17, 71, 28, 88, 46, 21, 31, 71, 42, 2, 98, 96, 40, 65, 92, 43, 68, 14, 98, 38, 13, 77, 14, 13, 60, 79, 52, 46, 9, 13, 25, 8 }; Test(partition, nums, 2387); // Test(partition, new int[] { 100 }, 50); }
private void Test(BalancePartition partition, int[] nums, int sum) { bool isSubsetWithRecur = partition.IsSubsetSumWithRecur(nums, sum); bool isSubset = partition.IsSubsetSum1(nums, sum); Console.WriteLine($"{string.Join(",", nums)} for {sum} can be balance partition: {isSubset} and {isSubsetWithRecur}(Recur)"); }