zoukankan      html  css  js  c++  java
  • 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 False


    A = Solution()
    print(A.increasingTriplet([1,2,3,4,5]))
    print(A.increasingTriplet([4,5,4,4]))
    print(A.increasingTriplet([1,2,-10,-8,-7]))
  • 相关阅读:
    切分文本行
    oracle 导出【转】
    SQL 表A不在表B记录
    Oracle 数据库操作
    oracle 跨表更新
    WPF : ViewPort3D, ModelVisual3D XAML example
    WPF : 3D 最简单的WPF 3D
    WPF : StoryBoard用法
    WPF/SilverLight学习计划
    WPF : 3D 给GeometryModel3D对象贴图
  • 原文地址:https://www.cnblogs.com/cong12586/p/13442643.html
Copyright © 2011-2022 走看看