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

}
相关推荐
夏幻灵18 分钟前
前端八股:JavaScript 深拷贝详解:实现方式、递归原理与循环引用
开发语言·前端·javascript
suaizai_25 分钟前
ComputerUse:让AI真正操控桌面系统
java·前端·javascript
梦帮科技31 分钟前
【3.0修订版】音乐权利 NFT:MusicRightsNFT 的确权思想与授权关联
网络协议·算法·web3·区块链·密码学·智能合约·零知识证明
Dfreedom.43 分钟前
基于PCA的光谱物质识别分析
算法
强化湿件的技术神甫1 小时前
KS检验和Lilliefors正态性检验方法
算法
FYKJ_20101 小时前
express绿叶横店短剧推荐与影评分享平台34219-计算机课程设计、毕业设计
java·javascript·vue.js·spring boot·后端·课程设计·express
yi0111 小时前
DAY23: LeetCode 27 → 283:从移除元素到移动零,理解快慢指针的两种思路
人工智能·笔记·python·算法·leetcode·排序算法·双指针
怕浪猫1 小时前
多 Agent 系统面试怎么答?我总结了 4 种经典架构
人工智能·算法·面试
weishuangyun11 小时前
小程序制作平台怎么选?三大平台对比!
大数据·开发语言·javascript
一颗小芹菜的日常1 小时前
vue-crack插件是干什么的
前端·javascript·vue.js