java 力扣 78题 子集

java 力扣 78题 子集_第1张图片

 

class Solution {

    public List> subsets(int[] nums) {

        List> rs=new ArrayList<>();

        rs.add(new ArrayList<>());

        for (int i = 0; i < nums.length; i++) {

            List list=new ArrayList<>();

            list.add(nums[i]);

            rs.add(list);

            if (nums.length>=i+1) {

                for (int j = i+1; j < nums.length; j++) {

                    List list1=new ArrayList<>();

                    list1.add(nums[i]);

                    list1.add(nums[j]);

                    rs.add(list1);

                    if (nums.length>=j+1){

                        for (int k = j+1; k < nums.length; k++) {

                            List list2=new ArrayList<>();

                            list2.add(nums[i]);

                            list2.add(nums[j]);

                            list2.add(nums[k]);

                            rs.add(list2);

                            if (nums.length>=k+1){

                                for (int l = k+1; l < nums.length; l++) {

                                    List list3=new ArrayList<>();

                                    list3.add(nums[i]);

                                    list3.add(nums[j]);

                                    list3.add(nums[k]);

                                    list3.add(nums[l]);

                                    rs.add(list3);

                                    if (nums.length>=l+1){

                                        for (int m = l+1; m < nums.length; m++) {

                                            List list4=new ArrayList<>();

                                            list4.add(nums[i]);

                                            list4.add(nums[j]);

                                            list4.add(nums[k]);

                                            list4.add(nums[l]);

                                            list4.add(nums[m]);

                                            rs.add(list4);

                                            if (nums.length>=m+1){

                                                for (int n = m+1; n < nums.length; n++) {

                                                    List list5=new ArrayList<>();

                                                    list5.add(nums[i]);

                                                    list5.add(nums[j]);

                                                    list5.add(nums[k]);

                                                    list5.add(nums[l]);

                                                    list5.add(nums[m]);

                                                    list5.add(nums[n]);

                                                    rs.add(list5);

                                                    if (nums.length>=n+1){

                                                        for (int b = n+1; b < nums.length; b++) {

                                                            List list6=new ArrayList<>();

                                                            list6.add(nums[i]);

                                                            list6.add(nums[j]);

                                                            list6.add(nums[k]);

                                                            list6.add(nums[l]);

                                                            list6.add(nums[m]);

                                                            list6.add(nums[n]);

                                                            list6.add(nums[b]);

                                                            rs.add(list6);

                                                            if (nums.length>=b+1){

                                                                for (int v = b+1; v < nums.length; v++) {

                                                                    List list7=new ArrayList<>();

                                                                    list7.add(nums[i]);

                                                                    list7.add(nums[j]);

                                                                    list7.add(nums[k]);

                                                                    list7.add(nums[l]);

                                                                    list7.add(nums[m]);

                                                                    list7.add(nums[n]);

                                                                    list7.add(nums[b]);

                                                                    list7.add(nums[v]);

                                                                    rs.add(list7);

                                                                    if (nums.length>=v+1){

                                                                        for (int c = v+1; c < nums.length; c++) {

                                                                            List list8=new ArrayList<>();

                                                                            list8.add(nums[i]);

                                                                            list8.add(nums[j]);

                                                                            list8.add(nums[k]);

                                                                            list8.add(nums[l]);

                                                                            list8.add(nums[m]);

                                                                            list8.add(nums[n]);

                                                                            list8.add(nums[b]);

                                                                            list8.add(nums[v]);

                                                                            list8.add(nums[c]);

                                                                            rs.add(list8);

                                                                            if (nums.length>=v+1){

                                                                                for (int x = c+1; x < nums.length; x++) {

                                                                                    List list9=new ArrayList<>();

                                                                                    list9.add(nums[i]);

                                                                                    list9.add(nums[j]);

                                                                                    list9.add(nums[k]);

                                                                                    list9.add(nums[l]);

                                                                                    list9.add(nums[m]);

                                                                                    list9.add(nums[n]);

                                                                                    list9.add(nums[b]);

                                                                                    list9.add(nums[v]);

                                                                                    list9.add(nums[c]);

                                                                                    list9.add(nums[x]);

                                                                                    rs.add(list9);

                                }}}}}}}}}}}}}

                            }

                        }

                    }

            }

            }

        }

        return rs;

    }

}

你可能感兴趣的:(数据结构,算法,java,leetcode)