function sum(arr, n, target) { let res //dfs函数(curNums当前用到的数,curSum这些数之和,start找下一个数的开始索引) const dfs = (curNums, curSum, start) => { //如果找到了n个数,则要开始判断 if (curNums.length === n) { //如果符合要求,结果赋值给res if (curSum === target) res = curNums //不管符不符合要求,都要return了,因为已经是n个数了 return } //注:遍历从start开始,下一次递归的时候start要+1(防止使用自身以及之前) for (let i = start; i < arr.length; i++) { if (res) return dfs(curNums.concat(arr[i]), curSum + arr[i], start + 1) } } dfs([], 0, 0) return res } dfs回溯,不知道会不会超时,我记着在力扣有这道题
点赞 2

相关推荐

牛客网
牛客企业服务