现在的位置: 首页 > 综合 > 正文

Leetcode: Subsets

2017年12月23日 ⁄ 综合 ⁄ 共 657字 ⁄ 字号 评论关闭

Given a set of distinct integers, S, return all possible subsets.

Note:

  • Elements in a subset must be in non-descending order.
  • The solution set must not contain duplicate subsets.

For example,

If S = [1,2,3],
a solution is:

[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]

void sub(vector<int> s, int index, vector<int> &path, vector<vector<int>> &solution)
    {
		if(index == s.size()){solution.push_back(path);return;}
		sub(s,index+1,path,solution);
		path.push_back(s[index]);
		sub(s,index+1,path,solution);
		path.pop_back();
	}
	vector<vector<int>> subsets(vector<int> &S) {
        // Note: The Solution object is instantiated only once.
        vector<vector<int>> solution;
		vector<int> path;
        sort(S.begin(),S.end());
		sub(S,0,path,solution);
		return solution;
    }

【上篇】
【下篇】

抱歉!评论已关闭.