JS递归思想&递归函数执行顺序

递归思想类似与数学中的归纳法,即需要完成一个复杂函数的运算的时候,先算出他的上一步的结果然后继续运算。

复杂情况的递归建议转化为树的结构进行思考。

递归函数包括的内容:

1.函数的结束条件;

2.过程处理逻辑;

3.下一个递归函数的进行;

//leetcode22:括号的生成,递归回溯解题,index用来记录函数执行的过程    
用index记录函数的执行过程
    var index = 0;
    var generate = function(n){
        
        const res = [];
        if(n<= 0){
            console.log(res);
            return res;
        }
        const dfs = function(path,open,close){
            index++;
        //记录每次进入递归函数的输入path
           console.log("start:",path,open,close,index)
            // if(open > n || close>open){
            //     return ;
            // }
            if(path.length == 2*n){
                res.push(path);
                return;
            }
            dfs(path+'(',open +1 ,close);
        //验证什么时候开始执行递归函数的下一层逻辑
            console.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值