[LeetCode] Combination Sum

来源:互联网 发布:instanceof java 编辑:程序博客网 时间:2024/06/06 00:47
class Solution {public:    vector<vector<int> > ret;    vector<int> sln;        void DFS(vector<int> &nums, int target, int n) {        if (target == 0) {            ret.push_back(sln);            return;        }                if (target < 0 || n == nums.size()) return;                int num = nums[n];                for (int i = 0; i * num <= target; i++) {            for (int j = 0; j < i; j++)                sln.push_back(num);                            DFS(nums, target - i * num, n + 1);                        for (int j = 0; j < i; j++)                sln.pop_back();        }    }        vector<vector<int> > combinationSum(vector<int> &candidates, int target) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        ret.clear();        sort(candidates.begin(), candidates.end());                DFS(candidates, target, 0);                return ret;    }};


Small Case: 12ms

Large Case: 80ms

原创粉丝点击