Leetcode 300 最長上公升子串行

2021-09-24 14:50:05 字數 768 閱讀 6765

給定乙個無序的整數陣列,找到其中最長上公升子串行的長度。

示例:

輸入:[10,9,2,5,3,7,101,18]

輸出:4

解釋:最長的上公升子串行是 [2,3,7,101],它的長度是 4。

說明:

高階:你能將演算法的時間複雜度降低到 o(n log n) 嗎?

直接用dp求解,演算法如下:時間複雜度為o(n^2)

①最優子問題

設lis[i] 表示索引為 [0...i] 上的陣列上的 最長遞增子串行。初始時,lis[i]=1,注意,在dp中,初始值是很重要的,它是整個演算法執行正確的關鍵。而初始值 則可以 通過 畫乙個小的示例來 確定。

當 arr[i] > arr[j],lis[i] = max+1 ;其中,j 的取值範圍為:0,1...i-1

當 arr[i] < arr[j],lis[i] = max ;其中,j 的取值範圍為:0,1...i-1

1

class

solution

9for(int i=1;i)14}

15}16int max=dp[0];

17for(int i=1;i)21}

22return

max;23}

24 }

LeetCode300 最長上公升子串行

給定乙個無序的整數陣列,找到其中最長上公升子串行的長度。示例 輸入 10,9,2,5,3,7,101,18 輸出 4解釋 最長的上公升子串行是 2,3,7,101 它的長度是4。說明 題目分析 方法一 動態規劃,用dp i 表示以nums i 結尾的最長上公升子串行。那麼如何求dp i 呢,只要看n...

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...