lintcode-medium-Subsets
Posted 哥布林工程师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lintcode-medium-Subsets相关的知识,希望对你有一定的参考价值。
Given a set of distinct integers, return all possible subsets.
Notice
- Elements in a subset must be in non-descending order.
- The solution set must not contain duplicate subsets.
Example
If S = [1,2,3]
, a solution is:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
Challenge
Can you do it in both recursively and iteratively?
class Solution { /** * @param S: A set of numbers. * @return: A list of lists. All valid subsets. */ public ArrayList<ArrayList<Integer>> subsets(int[] nums) { // write your code here ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); //res.add(new ArrayList<Integer>()); ArrayList<Integer> line = new ArrayList<Integer>(); Arrays.sort(nums); for(int i = 0; i <= nums.length; i++){ helper(res, line, i, 0, nums); } return res; } public void helper(ArrayList<ArrayList<Integer>> res, ArrayList<Integer> line, int len, int start, int[] nums){ if(line.size() == len){ res.add(new ArrayList<Integer>(line)); return; } for(int i = start; i < nums.length; i++){ line.add(nums[i]); helper(res, line, len, i + 1, nums); line.remove(line.size() - 1); } return; } }
以上是关于lintcode-medium-Subsets的主要内容,如果未能解决你的问题,请参考以下文章