leetcode 300 最長上公升子串行

2021-09-29 14:48:36 字數 958 閱讀 5399

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

示例:

輸入:[10

,9,2

,5,3

,7,101,18

]輸出:

4

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

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

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

class

solution

:def

lengthoflis

(self, nums)

:"""

:type nums: list[int]

:rtype: int

"""size =

len(nums)

if size <2:

return size

tail =

for num in nums:

# 找到大於等於 target 的第 1 個數

l =0 r =

len(tail)

while l < r:

mid = l +

(r - l)//2

if tail[mid]

>= num:

r = mid

else

: l = mid +

1if l ==

len(tail)

:else

: tail[l]

= num

return

len(tail)

如有錯誤,請批評指正!

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