题解 | #集合的所有子集(二)#
集合的所有子集(二)
https://www.nowcoder.com/practice/a3dfd4bc8ae74fad9bc65d5ced7ae813
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型二维数组 */ function subsets( nums ) { if(nums === []) return []; nums.sort((a, b) => a - b); let res = [], track = []; const backtrack = (nums, start, track) => { // 终止条件 res.push([...track]); // 遍历 for(let i = start; i < nums.length; i++) { if(i > start && nums[i] === nums[i-1]) continue; track.push(nums[i]); backtrack(nums, i + 1, track); track.pop(); } } backtrack(nums, 0, track); return res; } module.exports = { subsets : subsets };