''' 解题思路: 维护一个长度为2的上升子序列up,和当前为止的序列最小值minv,根据规则更新即可 ''' # [20,100,10,12,5,13] from typing import re class Solution: def increasingTriplet(self, nums): L = nums print(L) n = len(nums) minv = L[0] up = [minv] for i in range(1,n): Li = L[i] if len(up)==1: if Li<minv: minv = Li elif Li>minv: up = [minv,Li] elif len(up)==2: if Li>up[1]: return True elif Li>up[0]: up[1] = Li if Li>minv and Li<=up[1]: up = [minv,Li] if Li<minv: minv = Li print('i=',i,'Li=',Li,'minv=',minv,'up=',up) return False #nums = [20,100,10,12,5,13] #nums = [1,2,3,4,5] #nums = [5,4,3,2,1] nums = [2,1,5,0,4,6] t = Solution().increasingTriplet(nums) print(t)