算法(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

}
相关推荐
xiaominlaopodaren3 分钟前
three.js地图数学基础(二):Web Mercator
javascript·gis·three.js
谷哥的小弟7 分钟前
TypeScript接口
javascript·typescript
RobinDevNotes8 分钟前
轻量级动画引擎Anime.js迎来V4大版本更新
开发语言·前端·javascript·ecmascript·动画·c4前端
渣波13 分钟前
React 性能优化实战:从 memo 到 Hooks 的底层原理与进阶封装
前端·javascript
触底反弹13 分钟前
别再 Prop Drilling 了!一文彻底搞懂 React 组件通信的 5 种方案
前端·javascript·react.js
两只羊ovo14 分钟前
listToTree 速通:一维数组怎么变出多级菜单?Map 和 reduce 两种全解
前端·javascript
坚持编程的菜鸟14 分钟前
模拟实现strncat
c语言·算法·模拟实现strncat
何时梦醒16 分钟前
React 进阶必修:彻底搞懂受控组件与非受控组件
前端·javascript·react.js
wabs66621 分钟前
关于哈希表【力扣1.两数之和的思考】
数据结构·算法·leetcode·散列表·图论
今日无bug22 分钟前
JS 同步与异步:从单线程到 Promise
javascript·promise