思路:
- 递归函数形参和返回值
- 确认终止条件
- 单层递归逻辑
组合

思路:
递归
通过递归,边界条件是需要放入的数据达到长度需要。
var combine = function(n, k) {var result = [];var path =[];function backtracking(n,k,startIndex){if(path.length==k){//数量达到需要result.push(path.slice());//放入数据return;//打断递归}for(let i = startIndex;i<=n;i++){path.push(i);//放入path之一backtracking(n,k,i+1);//递归path.pop();//path去掉上一次的结果}}backtracking(n,k,1);return result;};
在做该题时遇到了一个问题,那就是当我写的为push(path)时,push进去的却是[],百思不得其解后,我发现有篇回答下面有这个问题的解决方法,那就是使用path.slice()
原因如上,感谢大佬能够解决问题。
