求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}...
生活随笔
收集整理的這篇文章主要介紹了
求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目前想到的一個方法,就是用棧來尋找,說下思想:(棧中的data為元素所在的位置,這意味著出棧和進棧的都是索引值,所以比較的時候根據索引找到其值后比較)
(1)棧為空,把一個元素入棧。9
(2)把小于棧頂的元素依次入棧。9 4 3 2,入棧完成后記錄一下該組合
(3)若棧為空,結束,非空,則出棧,尋找小于棧頂值大于出棧值的元素,出棧后當棧為空時,找到一個比彈出元素大的即可。(開始查找的位置出棧值所在位置的后一個)
(4)若找到,則把該元素入棧,跳到步驟(2)
(5)若找不到,則繼續步驟(3)
(6)其中組合最大的即為所求
模擬一下該過程
9(1)
9 4 3 2(2)
9 4 3(3)(5)
9 4(3)(5)
9 5(3)(4)
9 5 4 3 2(2)
9 5 4 3 (3)(5)
9 5 4 (3)(5)
9 5(3)(5)
9(3)(5)
(3)(5)
結束
轉載于:https://www.cnblogs.com/GoAhead/archive/2012/05/30/2525978.html
總結
以上是生活随笔為你收集整理的求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式架构的前世今生...
- 下一篇: wpf 3D学习