Python 中的递增三元组子序列

pythonserver side programmingprogramming更新于 2025/11/23 2:20:17

假设有一个未排序的数组。我们必须检查该数组中是否存在长度为 3 的递增子序列。

正式来说,该函数应该 −

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

为了解决这个问题,我们将遵循以下步骤 −

  • small := infinity, big := infinity
  • 对于数组中的每个元素 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

相关文章


有用资源