Given an array of distinct integers, return all possible subsets. The solution set must not contain duplicate subsets.
For example, given , return .
You can solve this with backtracking, but there's a direct bit manipulation approach. Think about representing each subset as a bitmask.