Python 中的遞增三元子序列


假設有一個無序陣列。我們必須檢查該陣列中是否存在長度為 3 的遞增子序列。

形式上,函式應該 −

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

為了解決此問題,我們將按照以下步驟操作 −

  • small := 無窮大,big := 無窮大
  • 對於陣列中的每個元素 i
    • 如果 i <= small,則 small := i,否則當 i <= big 時,則 big := i,否則返回 true
  • 返回 false

讓我們看看以下實現以獲得更好的理解 −

示例

 活動演示

class Solution(object):
   def increasingTriplet(self, nums):
      small,big = 100000000000000000000,100000000000000000000
      for i in nums:
         if i <= small:
            small = i
         elif i<=big:
            big = i
         else :
            return True
      return False
ob1 = Solution()
print(ob1.increasingTriplet([5,3,8,2,7,9,4]))

輸入

[5,3,8,2,7,9,4]

輸出

True

更新時間: 04-May-2020

521 次瀏覽

開始 職業生涯

完成課程以獲得認證

開始
廣告
© . All rights reserved.