欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Subsets Java,

来源: javaer 分享于  点击 4263 次 点评:108

Subsets Java,


Given a set of distinct integers, S, return all possible subsets.

Note:

  • Elements in a subset must be in non-descending order.
  • The solution set must not contain duplicate subsets.

For example,
If S = [1,2,3], a solution is:


 Solution: Non-Recursion method
    NP-Problem again.
    Complexity Time is base on the Number of Subsets result which is O(2^N)

    Idea: Create result list from Nothing to something that means
    generate element from empty set to some element sets by inserting element one by one.

Check detail in Coding below


public class Solution {
   public ArrayList<ArrayList<Integer>> subsets(int[] S) {
        ArrayList<ArrayList<Integer>> res = new  ArrayList<ArrayList<Integer>>();
        if(S.length==0) return res;
        //Elements in a subset must be in non-descending order.
        Arrays.sort(S);
        ArrayList<Integer> list=new ArrayList<Integer>();
        //Start from a empty list
        res.add(list);
        for(int i=0;i<S.length;i++){
            int size=res.size();
            for(int j=0;j<size;j++){
                //generate from empty set to some element
                // sets by inserting element one by one.
                list=new ArrayList<Integer>(res.get(j));
                list.add(S[i]);
                res.add(list);
            }
        }
        return res;
    }
}


相关文章

    暂无相关文章
相关栏目:

用户点评