方法一:直接DP (時間複雜度O(n^2) 空間複雜度 O(2n))
方法二:二分 (時間複雜度O(nlongn) 空間複雜度O(n))
思路:每讀入一個數據與棧頂元素比較,
如果小於棧頂元素,直接入棧,
如果大於等於棧頂元素,調用二分查找棧中元素第一個比當前輸入的元素大的棧內元素
用當前元素替換棧內找到的元素
輸出棧的高度即爲LIS的長度
由此可見無論是時間還是空間用二分法計算的結果都比dp要好
方法一:直接DP (時間複雜度O(n^2) 空間複雜度 O(2n))
方法二:二分 (時間複雜度O(nlongn) 空間複雜度O(n))
思路:每讀入一個數據與棧頂元素比較,
如果小於棧頂元素,直接入棧,
如果大於等於棧頂元素,調用二分查找棧中元素第一個比當前輸入的元素大的棧內元素
用當前元素替換棧內找到的元素
輸出棧的高度即爲LIS的長度
由此可見無論是時間還是空間用二分法計算的結果都比dp要好