let cmn = function(nums,n,currentIndex = 0,choseArr = [],result = []){
let maxLen = nums.length;
if(currentIndex + n > maxLen) {return []};
for(let i = currentIndex;i < maxLen;++i){
if(n === 1){
result.push([...choseArr,nums[i]]);
if(i + 1 < maxLen){
cmn(nums,n,i+1,choseArr,result);
}
break;
}
cmn(nums,n-1,i+1,[...choseArr,nums[i]],result);
}
return result;
}
let nums = [1,2,3,4,5,6,7,8,9];
let res = cmn(nums,2);
本文介绍了一个使用递归方法实现的组合选择算法,该算法能够从给定数组中选择特定数量的元素并返回所有可能的组合。通过对不同层级的递归调用,算法有效地构建了组合列表。
&spm=1001.2101.3001.5002&articleId=115867845&d=1&t=3&u=a50b1b5419f4428a815d9aec73a3b6a8)
338

被折叠的 条评论
为什么被折叠?



