题目:
难度:Middle
相关话题:位运算
、数组
、回溯算法
给定一组不含重复元素 的整数数组nums ,返回该数组所有可能的子集(幂集)。
说明: 解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
思路:
回溯
,由于都是独立的数字,因此只需要每次递归时索引+1
。
/**
* @来源: Javascript中文网 - 前端进阶资源教程 https://www.javascriptc.com/
* @介绍:JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容
* @param {number[]} nums
* @return {number[][]}
*/
var subsets = function(nums) {
let result=[]
backtrack(0,[])
return result
function backtrack(start,temp){
result.push(temp.slice())
for(let i=start;i<nums.length;i++){
temp.push(nums[i])
backtrack(i+1,temp)
temp.pop()
}
}
};
扩展阅读: