給定乙個無序的整數陣列,找到其中最長上公升子串行的長度。
示例:
輸入:說明:[10,9,2,5,3,7,101,18]
輸出:4解釋:最長的上公升子串行是[2,3,7,101],
它的長度是4
。
題目分析:
方法一:動態規劃,用dp[i]表示以nums[i]結尾的最長上公升子串行。那麼如何求dp[i]呢,只要看nums[i]之前的元素,哪個元素比nums[i]要小,並且它的dp值最大,那麼dp[i]就在它dp值的基礎上加1即可。最後求所有dp陣列的最大值。
**展示:
class solution
}//*lower_bound(vec.begin(),vec.end(),nums[i]) = nums[i];}}
return vec.size();
}};
說明:**12-17行可以用第18行**代替,作用是相同的。函式lower_bound(first,second,val)在first和last中的前閉後開區間進行二分查詢,返回大於或等於val的第乙個元素位置。 Leetcode 300 最長上公升子串行
給定乙個無序的整數陣列,找到其中最長上公升子串行的長度。示例 輸入 10,9,2,5,3,7,101,18 輸出 4解釋 最長的上公升子串行是 2,3,7,101 它的長度是4。說明 高階 你能將演算法的時間複雜度降低到 o n log n 嗎?解題思路 1.普通演算法 動態規劃。假設陣列的前n個數...
leetcode 300 最長上公升子串行
給定乙個無序的整數陣列,找到其中最長上公升子串行的長度。示例 輸入 10,9,2,5,3,7,101,18 輸出 4解釋 最長的上公升子串行是 2,3,7,101 它的長度是4。說明 高階 你能將演算法的時間複雜度降低到 o n log n 嗎?解法1 動態規劃空間複雜度o n 時間複雜度o n 2...
Leetcode 300 最長上公升子串行
給定乙個無序的整數陣列,找到其中最長上公升子串行的長度。示例 輸入 10,9,2,5,3,7,101,18 輸出 4解釋 最長的上公升子串行是 2,3,7,101 它的長度是4。說明 高階 你能將演算法的時間複雜度降低到 o n log n 嗎?動態規劃 o n 2 的狀態很好定義 dp i 表示以...