leetcode 78.子集

75 阅读1分钟

78. 子集 - 力扣(LeetCode)

image.png

class Solution {
public:
vector<int> temp;
vector<vector<int>> result;


void backtracking(int startindex,vector<int>& nums)
{
    

   

    //单层搜索逻辑
for(int i=startindex;i<nums.size();i++)  
{
  //递归结束条件
if(temp.end()==nullptr)
    {
        result.push_back(temp);
        result.push_back(nums);
        return result;
    }
    temp.push_back(nums[i]);
    backtracking(i+1,nums);
    temp.pop_back();

}

}

    vector<vector<int>> subsets(vector<int>& nums) {

        backtracking(0,nums);

    }
};

深度应该控制nums的长度:

class Solution {
public:
vector<int> temp;
vector<vector<int>> result;


void backtracking(int startindex,vector<int>& nums,vector<int> temp)
{
    
    //递归结束条件
 
            result.push_back(temp);

        

    //单层搜索逻辑
for(int i=startindex;i<nums.size();i++)
{ 
    
    temp.push_back(nums[i]);
    backtracking(i+1,nums,temp);
    temp.pop_back();

}

}

    vector<vector<int>> subsets(vector<int>& nums) {

        backtracking(0,nums,temp);
        return result;

    }
};