回溯法框架下,多种情况如此
全排列
#include
#include
using namespace std;
class Solution {
public:
vector> permute(vector nums) {
vector> res;
if(nums.size()==0) {
return res;
}
helper(nums, 0, res);
return res;
}
void helper(vector nums, int start, vector>& res) {
if(start==nums.size()-1) {
res.push_back(nums);
return;
}
for(int i=start;i nums {1,2,3};
vector> res;
Solution s2;
res = s2.permute(nums);
for(auto i:res) {
for(auto j:i){
cout<
子集
#include
#include
using namespace std;
class Solution {
public:
vector> res;
vector> subsets(vector& nums) {
vector track;
backtrace(nums,0,track);
return res;
}
void backtrace(vector &nums, int start, vector & track) {
res.push_back(track);
for(int i= start;i nums {1,2,3};
Solution s2;
vector> res;
res = s2.subsets(nums);
for(auto i:res) {
for(auto j:i) {
cout<