面試題 03 04 漢諾塔問題

2021-10-03 10:05:51 字數 453 閱讀 4004

在經典漢諾塔問題中,有 3 根柱子及 n 個不同大小的穿孔圓盤,盤子可以滑入任意一根柱子。一開始,所有盤子自上而下按公升序依次套在第一根柱子上(即每乙個盤子只能放在更大的盤子上面)。移動圓盤時受到以下限制:

(1) 每次只能移動乙個盤子;

(2) 盤子只能從柱子頂端滑出移到下一根柱子;

(3) 盤子只能疊在比它大的盤子上。

請編寫程式,用棧將所有盤子從第一根柱子移到最後一根柱子。

你需要原地修改棧。

class solution 

void move(int n,vector& a,vector& b,vector& c)

move(n-1,a,c,b);

c.push_back(a.back());

a.pop_back();

move(n-1,b,a,c);

}};

面試題 08 06 漢諾塔問題

面試題 08.06.漢諾塔問題 簡單題 遞迴 在經典漢諾塔問題中,有 3 根柱子及 n 個不同大小的穿孔圓盤,盤子可以滑入任意一根柱子。一開始,所有盤子自上而下按公升序依次套在第一根柱子上 即每乙個盤子只能放在更大的盤子上面 移動圓盤時受到以下限制 1 每次只能移動乙個盤子 2 盤子只能從柱子頂端滑...

面試題 08 06 漢諾塔問題

在經典漢諾塔問題中,有 3 根柱子及 n 個不同大小的穿孔圓盤,盤子可以滑入任意一根柱子。一開始,所有盤子自上而下按公升序依次套在第一根柱子上 即每乙個盤子只能放在更大的盤子上面 移動圓盤時受到以下限制 1 每次只能移動乙個盤子 2 盤子只能從柱子頂端滑出移到下一根柱子 3 盤子只能疊在比它大的盤子...

面試題 08 06 漢諾塔問題

在經典漢諾塔問題中,有 3 根柱子及 n 個不同大小的穿孔圓盤,盤子可以滑入任意一根柱子。一開始,所有盤子自上而下按公升序依次套在第一根柱子上 即每乙個盤子只能放在更大的盤子上面 移動圓盤時受到以下限制 1 每次只能移動乙個盤子 2 盤子只能從柱子頂端滑出移到下一根柱子 3 盤子只能疊在比它大的盤子...