leetcode78-子集
leetcode 78https://i-blog.csdnimg.cn/direct/93be465e26284abfb2d1fe2ee45c9213.png
思路
本题紧张考的是回溯
result用来存储结果值,path表示每层遍历存放的值,每次递归的时候path中的结果都是结果值,所以每次递归的时候需要先把path中的内容存入result中,当startIndex === nums.length时,说明已经遍历完所有元素则竣事递归
下面图中是所有的过程,以nums = 为例,图中pop()就是回溯的过程
https://i-blog.csdnimg.cn/direct/eb300ccf15c048be87a97e8d7ce43145.png
实现
var subsets = function(nums) {
let result = [],path = [];
const backtracking = (nums,startIndex)=>{
result.push([...path])
if(nums.length === startIndex) return;
for(let i = startIndex;i < nums.length;i++){
path.push(nums)
backtracking(nums,i+1)
path.pop(); // 回溯
}
}
backtracking(nums,0)
return result;
};
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]