算法(TS):找出数组中和为sum的n个数

使用递归和回溯

ts 复制代码
function findSum(arr: number[],target:number,count:number):number[][] {
    if(arr.length === 0 || count <= 0) return []
    const answers: number[][] = []
    const current: number[] = []

    const backtrack = (start: number,sum: number,n: number) => {
        if(sum === 0 && n === 0) {
            answers.push([...current])
            return
        }

        for(let i = start; i < arr.length; i++) {
            if(arr[i] <= sum) {
                current.push(arr[i])
                backtrack(i + 1,sum-arr[i],n-1)
                current.pop()
            }
        }
    }

    backtrack(0,target,count)
    return answers

}
相关推荐
凯瑟琳.奥古斯特16 小时前
力扣1235:加权区间调度最优解
java·python·算法·leetcode·职场和发展
想不到ID了16 小时前
第八篇: 登录注册功能实现
java·javascript
耶叶16 小时前
餐厅出入最少人数问题:贪心算法
算法·贪心算法
gihigo199816 小时前
基于小波框架与稀疏表示的SAR图像目标识别系统(MATLAB实现)
算法
ZC跨境爬虫16 小时前
跟着 MDN 学CSS day_37:(从文档流到粘性定位的底层原理)
前端·javascript·css·ui·html
十九画生16 小时前
从“会用函数”到“理解函数”:JavaScript 中函数为什么也是对象?
javascript
吴可可12316 小时前
CAD2004自定义实体开发环境配置
c++·算法
装不满的克莱因瓶16 小时前
矩阵的主成分是什么?主成分分析(PCA)又能做什么?
人工智能·线性代数·算法·机器学习·ai·矩阵·pca
大菜菜小个子17 小时前
template<typename T>使用
java·开发语言·算法
Fanfanaas17 小时前
C++ 继承
java·开发语言·jvm·c++·学习·算法