2013-02-05 76 views

回答

0

的曲折子擴展這個工具的典型LIS算法,簡單地刪除比第一個元素小的所有元素,並且比輸入中的最後一個元素大。只考慮不是解決方案的第一個或最後一個元素,然後將這兩個添加到您找到的解決方案中。如果最後一個元素不比第一個元素大,說明沒有增加的子序列。

+0

哇,這是快速和正確的!現在如何用這個相同的約束來擴展這個曲折的LIS(http://stackoverflow.com/questions/6914969/dynamic-programming-find-longest-subsequence-that-is-zig-zag?rq=1)? – marti

+0

@marti我已經解決了SRM上的原始問題:)不幸的是,它不會很容易適應我提出的用於曲折序列的解決方案。如果不考慮從第一個元素開始的序列,並且只有在最後一個元素結束時才計算有效解,那麼您將不得不使DP更復雜一些。 –

+0

謝謝伊瓦洛!我怎麼做? – marti