@@ -0,0 +1,686 @@
+class Solution:%0A    # @param candidates, a list of integers%0A    # @param target, integer%0A    # @return a list of lists of integers%0A%0A    def combinationSum(self, candidates, target):%0A        if not candidates:%0A            return %5B%5D%0A        candidates.sort()%0A        n = len(candidates)%0A        res = %5B%5D%0A%0A        def solve(start, target, tmp):%0A            if target %3C 0:%0A                return%0A            if target == 0:%0A                res.append(tmp%5B:%5D)%0A                return%0A            for i in xrange(start, n):%0A                tmp.append(candidates%5Bi%5D)%0A                solve(i, target-candidates%5Bi%5D, tmp)%0A                tmp.pop()%0A%0A        solve(0, target, %5B%5D)%0A        return res%0A

add solution for Combination Sum