1class Solution {23private static void solve(int[] nums, int i, List<Integer> temp, List<List<Integer>> subset) {45if (i == nums.length) {6subset.add(new ArrayList(temp));7return;8}910temp.add(nums[i]);11solve(nums, i + 1, temp, subset);1213temp.remove(temp.size() - 1);14solve(nums, i + 1, temp, subset);15}1617public List<List<Integer>> subsets(int[] nums) {18List<List<Integer>> subset = new ArrayList();19List<Integer> temp = new ArrayList<>();2021if (nums.length == 0) return subset;2223int startInd = 0;2425solve(nums, startInd, temp, subset);2627return subset;28}29}