代码拉取完成,页面将自动刷新
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
思路:同77题相似,使用深度搜索
class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> result = new ArrayList<>();
result.add(new ArrayList<Integer>());
if (nums.length<=0)
return result;
for (int i = 1; i <= nums.length; i++) {
dfs(nums, i, 0, new ArrayList<>(), result);
}
return result;
}
private void dfs(int[] nums, int n, int start, List<Integer>path, List<List<Integer>> result) {
if (path.size() == n) {
List<Integer> tmp = new ArrayList<>(path);
result.add(tmp);
return;
}
for (int i = start; i < nums.length; i++) {
path.add(nums[i]);
dfs(nums, n, i+1, path, result);
path.remove(path.size()-1);
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。