LeetCode300 最長上公升子串行

2021-10-03 21:04:31 字數 1154 閱讀 9676

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

示例:

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

輸出: 4

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

說明:

可能會有多種最長上公升子串行的組合,你只需要輸出對應的長度即可。

你演算法的時間複雜度應該為 o(n2) 。

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

定義d p[

i]

dp[i]

dp[i

]為以num

s[i]

nums[i]

nums[i

]為最後檢測元素的最長上公升子串行的長度。

從小到大計算dpdp

dp陣列的值:

則最大值為max

(dp[

i]),

i=1,

2,…,

nmax(dp[i]),i=1,2,\dots ,n

max(dp

[i])

,i=1

,2,…

,n

class

solution}}

return

*max_element

(dp.

begin()

, dp.

end())

;}};

複雜度分析:

時間複雜度:o(n

2)

o(n^2)

o(n2

)空間複雜度:o(n

)o(n)

o(n)

class

solution

else r = mid -1;

} d[pos +1]

= nums[i];}

}return len;}}

;

複雜度分析:

時間複雜度:o(n

log⁡n)

o(n\log n)

o(nlogn)

空間複雜度:o(n

)o(n)

o(n)

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