17. 자집

1442 단어
서로 다른 정수를 포함하는 집합을 정해서 모든 서브집합으로 되돌려줍니다.

예제


예제 1:
 :[0]
 :
[
  [],
  [0]
]

예제 2:
 :[1,2,3]
 :
[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]

도전하다


당신은 귀속과 비귀속의 방식으로 동시에 해결할 수 있습니까?

주의사항


하위 집합의 원소 배열은 반드시 비내림차순이어야 하며, 해집은 중복된 하위 집합을 포함하지 않아야 한다.
public class Solution {    /**      * @param nums: A set of numbers      * @return: A list of lists      */    public List> subsets(int[] nums) {        //write your code here         ArrayList> result=new ArrayList>();         ArrayList list=new ArrayList();         ArrayList list1=new ArrayList();         if (nums==null||nums.length==0){             result.add(list1);             return result;         }         /*for (int i=0;i             ArraysList list1=new ArraysList();             list1.add(nums[i]);             result.add(list1);         }         result.add(list);*/        Arrays.sort(nums);         subsetshelper(nums,0,list,result);         result.add(list1);         return result;     }     public void subsetshelper(int [] nums,int start,ArrayList list,ArrayList> result){         for (int i=start;i             list.add(nums[i]);             result.add(new ArrayList(list));             subsetshelper(nums,i+1,list,result);             list.remove(list.size()-1);         }      } }
 
귀속을 이용하여 문제를 해결하고 빈집에 주의하다

좋은 웹페이지 즐겨찾기