5. 總結
最近在leetcode上鍛鍊演算法題的時候,偶然看到一篇介紹卡塔蘭數的文章,在這之前其實已經簡單的了解過卡塔蘭數以及與之相關問題,溫故而知新,藉此機會重新整理和總結一下,同時自己也手動寫出了遞推公式的推理過程,畢竟很多人第一次看到卡塔蘭的遞推公式時,都會有疑問,這條公式是怎麼來的。
題目描述:給定n個數的入棧序列,請問有多少種出棧序列。
給定n對括號,求括號正確配對的字串數,例如:
0對括號:[空序列] 1種可能
1對括號:() 1種可能
2對括號:()() (()) 2種可能
......
給定n個節點,能構成多少種不同的二叉搜尋樹。
可參考leetcode原題:不同的二叉搜尋樹一般我們無法直接從題目要求看出題目符合卡塔蘭數通項公式,我們需要進行一定的數學建模,並推導出題目的通項公式,如果符合卡塔蘭數的通項公式,則可以利用卡塔蘭數的遞推公式進行求解。
卡塔蘭數增長很快,使用遞推式時,需要注意資料溢位。
本次我只是簡單的介紹一下卡塔蘭數的基本情況,後續還會對相關問題繼續展開討論。
文章寫的有點粗糙,後續還會繼續優化。
應用卡塔蘭數解決出棧分析
今天被一道資料結構習題難住了,覺得挺有意思就寫博一篇記錄下來,被該題男主並非是不會用程式設計解決,而是考慮問題思維太狹窄導致的。題目如下 鐵路進行列車排程時,常把站台設計成棧式結構的站台。試問 設有編號為1,2,3,4,5,6的六輛列車,順序開入棧式結構的站台,則可能的出棧序列有多少種?本題題意是,...
Catalan數 卡塔蘭數 的證明
定義 從 0,0 到 n,n 不越過 可以接觸 直線y x 即每一步的落腳點都滿足y x 且每次只能往上或往右走。求方案數。結果 c 2n,n c 2n,n 1 程式設計是可以實現小資料的 n比較小時可以列舉,不過n可能會很大 證明方法 有很多種,自己上維基百科就能搜到 這裡給大家介紹一種不太常見的...
小兔的棋盤 hdu 2067 卡塔蘭數
description 小兔的叔叔從外面旅遊回來給她帶來了乙個禮物,小兔高興地跑回自己的房間,拆開一看是乙個棋盤,小兔有所失望。不過沒過幾天發現了棋盤的好玩之處。從起點 0,0 走到終點 n,n 的最短路徑數是c 2n,n 現在小兔又想如果不穿越對角線 但可接觸對角線上的格點 這樣的路徑數有多少?小...