1.6动态规划之经典递归-汉诺塔

问题不再多做赘述:

分析:
1)以动态规划的思维分析:
将N个盘子从左移到右
①首先考虑怎样将第N个盘子移到右边去,
②分为三步,1.将上面的n-1移到中间,2.将N移到右边,3.将n-1移到右边。如何以动态规划的思维将这个推导出这最后一步前面的的移动方式。
此时n已经移动完成,那么我们去移动第n-1个,同样是上面的三步,只是现在的中间柱子变为
此时考虑如何将上面的n-1移动,1.将n-2移到中间,(此时n-1原在柱子已经从左变为中,而我们目标柱为右,所以中转柱为 左柱(萨斯给!!)),2.将第n-1从“左柱”移动到右柱,3.将n-2从中柱移动到右柱。
由上面的递归得出所有的移动状态。

代码实现:

public void main(int n){
   
	if(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值