题解 | #和为S的连续正数序列#

递归解题

function FindContinuousSequence(sum) {
    // write code here
    let res = []
    let layer = []
    for (let i = 1; i <= Math.floor(sum / 2); i++) {
        recursion(i)
        console.log(1);
        //回溯
        layer = []
    }
    console.log(res);
    return res
    //求和函数
    function add(arr) {
        let sum = 0
        for (let item of arr) {
            sum += item
        }
        return sum
    }
    //递归函数
    function recursion(num) {
        layer.push(num)
        if (add(layer) > sum) {
            return
        }
        if (add(layer) == sum) {
            res.push([...layer])
            return
        }
        return recursion(num + 1)
    }

}

// FindContinuousSequence(9)
module.exports = {
    FindContinuousSequence: FindContinuousSequence
};
全部评论

相关推荐

白也ya:今天也是狠狠的被boss拷打了😋,终于知道双非想约到面试有多难了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务