位运算。。 共有2的n次方种可能 1 << n
func subsets(_ nums: [Int]) -> [[Int]] {
var t = Array<Int>()
var ans = Array<Array<Int>>()
let n = nums.count
for mask in 0..<(1 << n) {
t.removeAll()
for i in 0...n-1 {
if ((mask & (1 << i))) != 0 {
t.append(nums[i])
}
}
ans.append(Array.init(t))
}
return ans
}
网友评论