334递增的三元子序列

from typing import List# 这道题我是用动态规划的方法来作的,# 时间复杂度是O(n~2)空间复杂度是O(n)。# 定义一个列表,其中用来存放当前数比前面几个数递增大。class Solution:    def increasingTriplet(self, nums: List[int]) -> bool:        # 若是列表没哟三个数,直接返回False        if len(nums) < 3 :return False        # 定义一个列表,用来表示动态方程,这里将他们的初始值都设置成1        dp = [1 for i in range(len(nums))]        # 进行遍历        for index1 in range(1,len(nums)):            # 把当前数都和前边的数做比较,若是比某一个数大,就在它的基础上加上一            for index2 in range(0,index1):                # 这里dp上每个位置,都表示这个数比前边几个递增数大。                if nums[index1] > nums[index2]:                    dp[index1] = max(dp[index1],dp[index2] + 1)                    #若是有递增三元组,就返回真,这样后边的就不用了遍历了                    if dp[index1] >= 3:return True        # 所有遍历完成,没有退出函数,就返回false        else:            return FalseA = Solution()print(A.increasingTriplet([1,2,3,4,5]))print(A.increasingTriplet([4,5,4,4]))print(A.increasingTriplet([1,2,-10,-8,-7]))
相关文章
相关标签/搜索