1287 遞增的三元子串行

2022-02-14 19:48:02 字數 1525 閱讀 9415

給定未排序的陣列,返回是否在陣列中存在遞增的長度為3的子串行。

完整的功能應為:

如果存在i, j, k,使得arr[i] < arr[j] < arr[k],且0 ≤ i < j < k ≤ n-1,則返回true,否則返回false。

您的演算法應該以o(n)時間複雜度和o(1)空間複雜度執行。

樣例1

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

輸出: true

樣例2

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

輸出: false

class

solution:

"""@param nums: a list of integers

@return:

return

a boolean

"""def increasingtriplet(self, nums):

# write your code

length =len(nums)

#邊界判斷

if len(nums) < 3: return

false

#初始化

first, second = nums[0

], sys.maxsize

#儲存的要麼是sys.maxsize, 要麼是比first更小的值

first_prepared =sys.maxsize

for index in range(1

, length):

#首先, 如果存在右邊的值大於左邊的值得話, 則first, second都有值

if second ==sys.maxsize:

if nums[index] first =nums[index]

elif nums[index] >first:

second =nums[index]

else

: #判斷是否存在第三個大於second

if nums[index] >second:

return

true

#如果在first和second之間的話

elif first

< nums[index] second =nums[index]

#如果nums[index]

elif nums[index]

#如果比first_prepared更小的話,則更新first_prepared

if nums[index] first_prepared =nums[index]

#否則存在兩個更小相對值的first和second的值,則first和second均替換

else

: second =first

first =first_prepared

first_prepared =sys.maxsize

return

false

遞增三元子串行

如果存在這樣的 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 輸出 fa...

遞增的三元子串行

給定乙個未排序的陣列,判斷這個陣列中是否存在長度為 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 示...