Leetcode 300 最長上公升子串行

2022-01-10 21:29:58 字數 818 閱讀 6299

題目描述:題目鏈結

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

示例:

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

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

說明:

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

這個題目和最長公共子串行一樣,都是可以利用動態規劃來解決問題的:

可以利用常見的動態規劃思路:

1:將問題歸納。可以定義   dp[ i ] 來表示前 i 個字元中的最長的公共子串行。

2:給出動態規劃的遞推思路。dp[ i ] = max   (0 <= j < i ,nums[j] < nums[i] )

3:初始化。這一步最重要,因為乙個數字的時候最長上公升子串行為1,所以我們需要將初始化陣列為1

其實只要我們細心的推理,可以很容易的得到遞推關係式。

下面給出具體的**描述:

class

solution

int len =nums.length;

int a = new

int[len];

arrays.fill(a,1);

//利用兩層for迴圈來處理

for(int i = 1; i < len; i++)}}

int max = 1;

for(int i = 0; i < len; i++)

}return

max;

}}

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