题解 | #汉诺塔问题#

汉诺塔问题

https://www.nowcoder.com/practice/7d6cab7d435048c4b05251bf44e9f185

import java.util.*;

public class Solution {
    static ArrayList<String> list=new ArrayList<String>();//存放结果
    public ArrayList<String> getSolution(int n) {
        // write code here
        hannuo(n,"left","right","mid");//递归汉诺函数
        return list;
       }
   
    public void hannuo(int n,String a,String b,String c){//a,表示左,b表示右,c表示中
        if(n==1){
            list.add(String.format("move from %s to %s",a,b));//n为1时,直接从左边挪到右边
        }else{
            hannuo(n-1,a,c,b);//先将n-1层挪到中间
            hannuo(1,a,b,c);//再将右边剩余的1层直接挪到右边
            hannuo(n-1,c,b,a);//最后将中间n-1层挪到右边
        }
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 10:39
一个证都没&nbsp;我能填什么
程序员小白条:别人有,你为什么没有,还是这个道理,社会就是比较,竞争,淘汰,你要安逸,那么就要做好淘汰的准备
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务