题解 | #集合的所有子集(一)#

集合的所有子集(一)

https://www.nowcoder.com/practice/c333d551eb6243e0b4d92e37a06fbfc9

#include <vector>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param S int整型vector 
     * @return int整型vector<vector<>>
     */
    vector<int>path;
    vector<vector<int>>result;
    vector<vector<int> > subsets(vector<int>& S) {
        // write code here
        if (S.size()==0) {
            return result;
        }
        for (int i=0; i<=S.size(); i++) {
            TrackBacking(S, i, 0);
        }
        return result;
    }

    //输入S及要求的组合元素个数n,输出其所有组合
    void TrackBacking(vector<int>& S, int n, int start_index){
        if (path.size()==n) {
            result.push_back(path);
            return;
        }    
        for (int i=start_index; i<S.size(); i++) {
            path.push_back(S[i]);
            TrackBacking(S, n, i+1);
            path.pop_back();
        }
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务