public List<List<Integer>> subsets(int[] nums) {List<List<Integer>> ans = new ArrayList<>();generate(0, nums, ans, new ArrayList<>());return ans;}private void generate(int level, int[] nums, List<List<Integer>> ans, List<Integer> tempList) {if (level == nums.length) {// why not tempList? tempList local valueans.add(new ArrayList<>(tempList));return;}tempList.add(nums[level]);generate(level + 1, nums, ans, tempList);tempList.remove(tempList.size() - 1);generate(level + 1, nums, ans, tempList);}
