递归

递归

  1、定义:在函数的定义中使用函数自身的方法
  2、列子:递归-斐波拉契数列
     f(n)=f(n-1)+f(n-2)         //n>=2
     f(n)=0		                    //n==0
     f(n)=1	                       //n==1
  3、递归的基本思路
  		目标:解决一个规模为n的问题
  		思路:
  					n=1的时候,问题太简单了
					n=2的时候,问题也挺简单
					如果已经解决了n=k-1,能解决n=k吗
					如果已经解决了n=k/2,能解决n=k吗
					每一步有多种选择,不知道哪个对。。。

递归的应用:

 1、全排列问题
            将1..n排列的所有方案
 2、组合问题
        从1..n里面取k个数的所有方案
 3、带条件的排列组合
      从a[1..n]数组里面取k个数 使得其和为
  4、八皇后问题
       带条件的全排

递归:求枚举出3位数每位数字可以取1…3的所有可能

       const arr = [];
		function every(n){
		        const arr = n.split(''");
		        if(n==0){
		        	ewturn arr
		        }
				for(let i =1 ;i<4;i++){		
						arr[n] = i
						every(n-1)
				}
		}

从1…k里面取n个数的所有组合

  思想:
        从目表中取出0个数 
         f(0) = 0
         f(1) = f(0) +k
         f(2) = f(1) + k-1
         f(3) = f(2) + k-2
         ...
         f(n-1) = f(n-2) + k-n
         f(n) = f(n-1) + k-n+1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值