491.递增子序列
解题思路
代码实现
var findSubsequences = function(nums) {
var res =[];
var path =[];
var backtracking = function(nums,sIndex){
if(path.length >=2){
res.push([...path]);
}
var set = new Set();
for(let i =sIndex;i<nums.length;i++){
if(((nums[i] >= path[path.length-1] ) || path[0]==undefined ) && !set.has(nums[i])){
set.add(nums[i]);
path.push(nums[i])
backtracking(nums,i+1);
path.pop();
}
}
}
backtracking(nums,0);
return res;
};
46.全排列
解题思路
代码实现
var permute = function(nums) {
var path = [];
var res = [];
var len = nums.length
var backtracking = function(nums){
if(path.length === len){
res.push([...path])
}
for(let i =0;i<nums.length;i++){
path.push(nums[i]);
var arr = nums.filter((item)=>{
return item != nums[i]
})
backtracking(arr);
path.pop();
}
}
backtracking(nums)
return res;
};
47.全排列 II
解题思路
代码实现
var permuteUnique = function(nums) {
var res =[];
var path =[];
var len = nums.length;
var backtracking = function(nums){
if(path.length===len){
res.push([...path]);
}
var set =new Set();
for(let i=0;i<nums.length;i++){
if(!set.has(nums[i])){
path.push(nums[i]);
set.add(nums[i]);
var arr = nums.filter((item,idx)=>{
return idx !==i;
})
backtracking(arr);
path.pop()
}
}
}
backtracking(nums)
return res;
};
332.重新安排行程
解题思路
代码实现
51.N皇后
解题思路
代码实现
37.解数独
解题思路
代码实现