给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

    解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

    示例 1:

    1. 输入:nums = [1,2,3]
    2. 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

    示例 2:

    输入:nums = [0]
    输出:[[],[0]]
    

    提示:

    • 1 <= nums.length <= 10
    • -10 <= nums[i] <= 10
    • nums 中的所有元素 互不相同
    class Solution {
    public:
        vector<vector<int>> ans;
        vector<int>tem;
        void bt(vector<int>&nums,int index){
    
            if(index>=nums.size()) return;
            for (int i = index; i < nums.size();i++){
    
                tem.push_back(nums[i]);
                ans.push_back(tem);
                //这里下一轮从i+1开始,不是index+1开始
                bt(nums,i+1);
                tem.pop_back();
            }
        }
    
        vector<vector<int>> subsets(vector<int>& nums) {
            ans.push_back(tem);
            bt(nums,0);
            return ans;
        }
    };