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.