1 使用binary search和dynamic programming
2 既然是dp解法,所以需要建一個dp數組
3 純動態規劃解法,時間復雜度是O(n**2),維護一個一維dp數組,dp[i]表示以nums[i]結尾的最長遞增子序列的長度
4 binary search:時間復雜度O(nlogn),因為binary search是O(logn),再加上最外面的一層for循環。初始化一個array,把首元素放到array中,然后遍歷剩下的元素,當元素比這個小時,用這個元素替換掉第一個元素,當比array中最尾部的都大時,就append到array后面,當在首元素和尾元素之間時,用二分查找法找到第一個大于等于這個元素的值,替換掉這個值,就這樣一直遍歷完,最后array的長度就是所求。但要注意的是,最后array的值有可能并不是一個LIS。
5 還要寫一下dp的解法