Given a set of distinct integers, nums, return all possible subsets (the power set).
Note: The solution set must not contain duplicate subsets.
Example:
Input: nums = [1,2,3] Output: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
题目:给定数组,返回所有子集
思路:比如,数组内的数字1,2,3
初始子集 : []
添加 1: [] [1]
添加 2: [] [1] [2] [1, 2]
添加 3: [] [1] [2] [1, 2] [3] [1, 3] [2, 3] [1, 2, 3]
很容易就看出规律了,接着按照这个规律完成代码即可
class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> resultList = new ArrayList<>();
List<Integer> first = new ArrayList<>();
resultList.add(first);
for(int i=0; i<nums.length; i++)
{
int length = resultList.size();
for(int j=0; j<length; j++)
{
List<Integer> item = new ArrayList<>();
item.addAll(resultList.get(j));
item.add(nums[i]);
resultList.add(item);
}
}
return resultList;
}
}