一、题目
给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
二、示例
输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
输入:nums = [0]
输出:[[],[0]]
三、思路
本题思路:使用递归。不是特别难的递归,具体看下面代码
四、代码
/**
* @param {number[]} nums
* @return {number[][]}
*/
var subsets = function(nums) {
let result = []
const rec = (arr) => {
if(arr.length <= nums.length){
result.push(arr)
}
nums.forEach(item => {
if(arr.includes(item)) {
return
}
if(arr.length === 0 || (arr.length > 0 && item > arr[arr.length - 1])){
rec(arr.concat(item))
}
})
}
rec([])
return result
};
五、总结
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_47450807/article/details/123282217
内容来源于网络,如有侵权,请联系作者删除!