LeetCode 334 遞增的三元子串行

2021-10-09 05:36:03 字數 1572 閱讀 3972

題目描述

給定乙個未排序的陣列,判斷這個陣列中是否存在長度為 3 的遞增子串行。

數學表示式如下:

如果存在這樣的 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

解題思路

方法一:

我們可以設定兩個變數one和two,保證one小於two,若遍歷到乙個數大於two,則滿足三個數遞增的要求,返回true

該方法的時間複雜度為o(n)空間複雜度為o(1)

方法二:

我們還可以使用貪心演算法來解決這個問題。

迴圈遍歷陣列,不斷更新陣列**現的最大值和最小值,如果出現乙個大於最大值的數,則表示存在長度為3的遞增子串行,返回true。

具體步驟如下:

該方法的時間複雜度為o(n)空間複雜度為o(1)

**實現

方法一:

/**

* @param nums

* @return

*/var

increasingtriplet

=function

(nums)

else

if(num > one)

else

}return

false

};

方法二:

/**

* @param nums

* @return

*/var

increasingtriplet

=function

(nums)

else

if(nums[i]

<= big)

else

}return

false

};

提交結果

方法一:

方法二:

遞增三元子串行LeetCode334

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

Leetcode 334 遞增的三元子串行

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

LeetCode 334 遞增的三元子串行

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