zoukankan      html  css  js  c++  java
  • (递归) 汉诺塔问题 lintcode 169

     

     

    将n个从小到大的(上到下)盘子从A移动到C,借助B。其中大的盘子不能放在小的盘子上面输出模拟过程。

    将n个盘子从A移动到C => 将n-1个盘子从A移动到B , 再将最底部的一个盘子从A移动到C,最后将B上的n-1个盘子从B移动到C

    class Solution {
    public:
        /**
         * @param n: the number of disks
         * @return: the order of moves
         */
        vector<string> res;
        vector<string> towerOfHanoi(int n) {
            // write your code here
            move(n, "A", "B", "C");
            return res;
        }
        void move(int n, string from, string buffer, string to){
            if(n==1){
                string s = "from "+ from + " to " + to ;
                res.push_back(s);
            }
                
            else{
                move(n-1, from, to, buffer);
                move(1, from, buffer, to);
                move(n-1, buffer, from, to);
            }
        }
    };
  • 相关阅读:
    分页系统
    ORM-数据处理
    Django的用法
    登录cookie写法
    MySQL数据库的安装创建
    前端弹框编写
    ADB常用指令
    Appium环境配置
    Jmeter中传递cookie值
    Jmeter从文件中读取参数值
  • 原文地址:https://www.cnblogs.com/Bella2017/p/11482561.html
Copyright © 2011-2022 走看看