算法--递归--汉诺塔问题
生活随笔
收集整理的這篇文章主要介紹了
算法--递归--汉诺塔问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 問題分析
- 2. 面試題
1. 問題分析
游戲規則:一次只能挪一片;小的只能在大的上面;把所有的從A柱挪到C柱。
遞推公式:
終止條件:
n = 1 時,A 到 C;
2. 面試題
《程序員面試金典》面試題 08.06. 漢諾塔問題
- 題目
在經典漢諾塔問題中,有 3 根柱子及 N 個不同大小的穿孔圓盤,盤子可以滑入任意一根柱子。一開始,所有盤子自上而下按升序依次套在第一根柱子上(即每一個盤子只能放在更大的盤子上面)。移動圓盤時受到以下限制:
(1) 每次只能移動一個盤子;
(2) 盤子只能從柱子頂端滑出移到下一根柱子;
(3) 盤子只能疊在比它大的盤子上。
請編寫程序,用棧將所有盤子從第一根柱子移到最后一根柱子。
你需要原地修改棧。
示例1:輸入:A = [2, 1, 0], B = [], C = []輸出:C = [2, 1, 0] 示例2:輸入:A = [1, 0], B = [], C = []輸出:C = [1, 0]來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/hanota-lcci
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
- 解題
總結
以上是生活随笔為你收集整理的算法--递归--汉诺塔问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python最好用的助手_推荐5款好用的
- 下一篇: POJ 1276 ATM凑钱(动态规划)