'''
解题思路:
维护一个长度为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)