题目:
多加了一个生序排列的要求
解题思路:
不是很懂
https://leetcode-cn.com/problems/subsets/solution/zi-ji-by-leetcode-solution/
代码:
package com.janeroad;
import java.util.ArrayList;
import java.util.Arrays;
/**
* Created on 2020/11/6.
*
* @author LJN
*/
public class LC71 {
public ArrayList<ArrayList<Integer>> subsets(int[] nums) {
Arrays.sort(nums);
ArrayList<ArrayList<Integer>> ans = new ArrayList<>();
ans.add(new ArrayList<Integer>());
get_ans(nums,0,new ArrayList<Integer>(),ans);
return ans;
}
public void get_ans(int[] nums, int start, ArrayList<Integer> temp, ArrayList<ArrayList<Integer>> ans){
if(start>=nums.length) return;
temp.add(nums[start]);
ans.add(new ArrayList<>(temp));
get_ans(nums,start+1,temp,ans);
temp.remove(temp.size()-1);
get_ans(nums,start+1,temp,ans);
}
public static void main(String[] args) {
LC71 lc71 = new LC71();
int[] nums = new int[]{1,2,3,4};
ArrayList<ArrayList<Integer>> subsets = lc71.subsets(nums);
for (int i = 0; i < subsets.size(); i++) {
System.out.println(subsets.get(i));
}
}
}