コード例 #1
0
        public void TestFindSubsetsInDupList()
        {
            var nums = new List <int> {
                2, 1, 2, 2
            };
            var results = RecursiveBacktracking.FindSubsetsInDupList(nums);

            Assert.AreEqual(8, results.Count);
            Assert.IsTrue(RecursiveBacktracking.ContainsSubset(results, new List <int>()));
            Assert.IsTrue(RecursiveBacktracking.ContainsSubset(results, new List <int> {
                1
            }));
            Assert.IsTrue(RecursiveBacktracking.ContainsSubset(results, new List <int> {
                1, 2
            }));
            Assert.IsTrue(RecursiveBacktracking.ContainsSubset(results, new List <int> {
                1, 2, 2
            }));
            Assert.IsTrue(RecursiveBacktracking.ContainsSubset(results, new List <int> {
                1, 2, 2, 2
            }));
            Assert.IsTrue(RecursiveBacktracking.ContainsSubset(results, new List <int> {
                2
            }));
            Assert.IsTrue(RecursiveBacktracking.ContainsSubset(results, new List <int> {
                2, 2
            }));
            Assert.IsTrue(RecursiveBacktracking.ContainsSubset(results, new List <int> {
                2, 2, 2
            }));
        }
コード例 #2
0
        public void TestFindSubsetsWithTargetSum()
        {
            var nums = new List <int> {
                10, 1, 2, 7, 6, 1, 5
            };
            var results = RecursiveBacktracking.FindSubsetsWithTargetSum(nums, 8);

            Assert.IsTrue(RecursiveBacktracking.ContainsSubset(results, new List <int> {
                1, 7
            }));
            Assert.IsTrue(RecursiveBacktracking.ContainsSubset(results, new List <int> {
                1, 2, 5
            }));
            Assert.IsTrue(RecursiveBacktracking.ContainsSubset(results, new List <int> {
                6, 2
            }));
            Assert.IsTrue(RecursiveBacktracking.ContainsSubset(results, new List <int> {
                1, 1, 6
            }));
        }