[LeetCode] 78. Subsets

Given a set of distinct integers, nums, return all possible subsets.
Note: The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,3], a solution is:
[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]
https://www.sigmainfy.com/blog/leetcode-subset-i-and-ii.html  <== 完整的分析
思路: DFS, recursion,iterative, bit operation 應該都可以做. 
題目已經清楚表明數字不重複 所以可以一次挑一個數字往上堆 再加上原來的subset 

2.) 拿1出來往空list 堆 => [1]
3.) 再加上原來的 subset => [], [1]

4.) 拿2出來list 堆 => [2], [1,2]

5.) 再加上原來的 subset => [], [1], [2], [1,2]



6.) 拿3出來list 堆 => [3], [1,3], [2,3], [1,2,3]

7.) 再加上原來的 subset => [], [1], [2], [1,2], [3], [1,3], [2,3], [1,2,3]
 

留言