標籤:des style blog color io os strong for div
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], []]
演算法:該題的解空間類似一個排列樹,但是又不完全相同,樹種根到所有節點的路徑是一個解,還有不要忘了空集。直接用深度優先遍曆解決:
10/10test cases passed
Runtime::44ms
1 class Solution { 2 public: 3 vector<vector<int> > subsets(vector<int> &S) { 4 vector<vector<int>> result; 5 int len=S.size(); 6 if(S.size()<=0) return result; 7 sort(S.begin(),S.end()); 8 vector<int> temp; 9 doit(result,S,0,len,temp);10 return result;11 }12 void doit(vector<vector<int>> &result,vector<int> &s,int dep,int len,vector<int> &temp)13 {14 result.push_back(temp);15 for(int i=dep;i<len;i++)16 {17 temp.push_back(s[i]);18 doit(result,s,i+1,len,temp);19 temp.pop_back();20 }21 }22 };
Subsets <leetcode>