#78.Subsets [LeetCode Grind 75 in Java]
[Problem Link] https://leetcode.com/problems/subsets/
class Solution {
private List<List<Integer>> ans;
public void generate(int i, int[] nums, int n, ArrayList<Integer> cur){
if(i == n){
//store final formed subset
ArrayList<Integer> st = new ArrayList<>();
st.addAll(cur);
ans.add(st);
return;
}
//not take
generate(i + 1, nums, n, cur);
//take
cur.add(nums[i]);
generate(i + 1, nums, n, cur);
int li = cur.size() - 1;
cur.remove(li);
}
public List<List<Integer>> subsets(int[] nums) {
ans = new ArrayList<>();
int n = nums.length;
generate(0, nums, n, new ArrayList<Integer>());
return ans;
}
}