遞增三元子串行

2022-08-24 11:12:11 字數 1094 閱讀 6077

如果存在這樣的 i, j, k,  且滿足 0 ≤ i < j < k ≤ n-1

,使得 arr[i]

< arr[j] < arr[k] ,返回 true ; 否則返回 false 。

說明:要求演算法的時間複雜度為 o(n),空間複雜度為 o(1) 。

示例 1:

輸入: [1,2,3,4,5

]輸出:

true

示例 2:

輸入: [5,4,3,2,1

]輸出:

false

解題思路

從前向後遍歷陣列,使用兩個變數分別儲存當前為止所觀察到的最小值和次小值,當存在第三個值大於次小值時,返回true,否則返回flase。

python3**如下:

class

solution:

def increasingtriplet(self, nums) ->bool:

if len(nums) < 3 or nums is

none:

return

false

first = float('

inf'

) second = float('

inf'

)

for num in

nums:

if num <=first:

first =num

elif num <=second:

second =num

else

:

return

true

return

false

if__name__ == '

__main__':

so =solution()

arr = [5, 1, 5, 5, 2, 5, 4]

print(so.increasingtriplet(arr))

遞增的三元子串行

給定乙個未排序的陣列,判斷這個陣列中是否存在長度為 3 的遞增子串行。數學表示式如下 如果存在這樣的 i,j,k,且滿足 0 i j k n 1,使得 arr i arr j arr k 返回 true 否則返回 false 說明 要求演算法的時間複雜度為 o n 空間複雜度為 o 1 示例 1 輸...

LeetCode 遞增的三元子串行

問題描述 給定乙個未排序的陣列,判斷這個陣列中是否存在長度為 3 的遞增子串行。數學表示式如下 如果存在這樣的 i,j,k,且滿足 0 i j k n 1,使得 arr i arr j arr k 返回 true 否則返回 false 說明 要求演算法的時間複雜度為 o n 空間複雜度為 o 1 示...

LeetCode 遞增的三元子串行

給定乙個未排序的陣列,判斷這個陣列中是否存在長度為 3 的遞增子串行。數學表示式如下 如果存在這樣的 i,j,k,且滿足 0 i j k n 1,使得 arr i arr j arr k 返回 true 否則返回 false 說明 要求演算法的時間複雜度為 o n 空間複雜度為 o 1 示例 1 輸...