我已經通過許多在線資源來了解問題是如何具有最佳子結構的,但都是徒勞的,我無法理解如何通過解決更小的問題來獲得解決方案在這種情況下的子問題。無法理解最長增加子序列的算法
如果有任何解釋有助於理解解決方案,我會很感激。
到目前爲止,我理解最佳子結構性質如下:
例階乘:
所以對於40階乘,事實(40),就可以實現通過計算實際上溶液( 39)* 40,依此類推爲39,38 .... 2,因爲我們知道事實(2)是2,所以我們可以用相同的方法從2到40增加它。
但我不能夠在LIS的方面聯繫,請幫助
解決方案的完整解釋將是很好的,不重疊的子問題的問題,因爲這可以在以後處理。
謝謝。
你好,Hiresh - 偶然,你是否會混淆遞歸和LIS?通常,LIS算法(可能是遞歸的)涉及一個序列作爲輸入。 (通常用於排序,以確定O)。給出的因子例子是遞歸。 – John
嗨,約翰,儘管這個例子是遞歸的,但我認爲它有一個最佳的子結構屬性,因爲小問題被用來建立最終的問題,如果我錯了,請糾正我。 – Hiresh
請參閱下面的答案 - N!的問題,其最佳子結構是N的定義! (以及派生的序列)產生一個長度爲N的LIS。再次,爲了不同的目的,另一個不同的問題。 – John