the combined sum leetcode

1. recursive backtracking +

First, there are three things to remember clearly:

1) no repeating elements in the array

2) a digital array may be repeated unlimited selection

3) Solution Set can not contain duplicate combinations

code show as below:

class Solution {
    vector<vector<int>> res;
public:
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
         //递归+回溯
         vector<int> ans;
         getSum(candidates,ans,0,target);
        return res;
    }
    void getSum(vector<int>&c,vector<int> &ans,int index,int target)
    {
        if(target==0)
        {
              res.push_back(ans);
              return ;
        }
        if(target<0)
        {
            return ;
        }
        for(int i=index;i<c.size();i++)
        {
            ans.push_back(c[i]);
            getSum(c,ans,i,target-c[i]);
            ans.pop_back();
        }
    }
};

 

He published 190 original articles · won praise 3 · views 20000 +

Guess you like

Origin blog.csdn.net/qq_38196982/article/details/104902846