组合(二)

来源:互联网 发布:网络环境可能存在劫持 编辑:程序博客网 时间:2024/06/08 03:46

问题:

        给定一个含不同整数的集合,返回其所有的子集

思路:

       在组合(一)分析的基础上,这个问题只是求包含不同元素数量的子集合而已。

//递归执行具体的查找工作         void execFind(vector<vector<int>> &result, vector<int> nums, vector<int> cur, int leftnum, int index){        if(leftnum == 0){            result.push_back(cur);            return;        }                if(leftnum > nums.size() - index){            return;        }                    for(int i = index; i < nums.size(); i++){            cur.push_back(nums[i]);                execFind(result, nums, cur, leftnum - 1, i + 1);            cur.pop_back();        }    }               vector<vector<int> > subsets(vector<int> &nums) {    // write your code here    vector<vector<int>> result;//将空元素放入结果集中    vector<int> cur;    result.push_back(cur);        int size = nums.size();    if(size < 1)        return result;//依次查找不同长度的字数组            for(int i = 1; i <= size; i++){        cur.clear();        execFind(result, nums, cur, i, 0);    }            return result;    }


0 0
原创粉丝点击