前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >汉诺塔问题实现

汉诺塔问题实现

作者头像
gzq大数据
发布2021-11-19 16:12:27
2150
发布2021-11-19 16:12:27
举报
文章被收录于专栏:大数据那些事大数据那些事

其实就是三大步: 第一步:1-N-1个盘子从最左边的柱子放到中间 第二步:第N个盘子从最左边放到右边 第三步:1-N-1个盘子从中间放到左边 那肯定递归的入参里面必定有A,B,C和每一次要移动几个盘子

代码语言:javascript
复制
class Solution{
 public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) {
process(A.size(),A,C,B);
}
   //from to other
    public void process(Integer N,List<Integer> from,List<Integer> to,List<Integer> other){
        if(N==1){//只移动一个盘子直接移动就好
             to.add(from.get(from.size()-1));
             from.remove(from.size()-1);
        }else{
        process(N-1,from,other,to);//N-1个从左边移到中间
        to.add(from.get(from.size()-1));
        from.remove(from.size()-1);
        process(N-1,other,to,from);//N-1个从中间移到右边
        }
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-11-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档