zoukankan      html  css  js  c++  java
  • 1287. 递增的三元子序列

    1287. 递增的三元子序列

    给定未排序的数组,返回是否在数组中存在递增的长度为3的子序列。

    完整的功能应为:
    如果存在i, j, k,使得arr[i] < arr[j] < arr[k],且0 ≤ i < j < k ≤ n-1,则返回true,否则返回false。
    您的算法应该以O(n)时间复杂度和O(1)空间复杂度运行。

    样例

    样例1

    输入: [1, 2, 3, 4, 5]
    输出: true
    

    样例2

    输入: [5, 4, 3, 2, 1]
    输出: false
    class Solution:
        """
        @param nums: a list of integers
        @return: return a boolean
        """
        def increasingTriplet(self, nums):
            # write your code
            length = len(nums)
            
            #边界判断
            if len(nums) < 3: return False 
            
            #初始化
            first, second = nums[0], sys.maxsize
            #存储的要么是sys.maxsize, 要么是比first更小的值
            first_prepared = sys.maxsize
            
            for index in range(1, length):
                #首先, 如果存在右边的值大于左边的值得话, 则first, second都有值
                if second == sys.maxsize:
                    if nums[index] < first:
                        first = nums[index]
                    elif nums[index] > first:
                        second = nums[index]
                
                else:
                    #判断是否存在第三个大于second
                    if nums[index] > second:
                        return True 
                    #如果在first和second之间的话
                    elif first < nums[index] < second:
                        second = nums[index]
                    #如果nums[index] < first的话
                    elif nums[index] < first:
                        #如果比first_prepared更小的话,则更新first_prepared
                        if nums[index] < first_prepared:
                            first_prepared = nums[index]
                        #否则存在两个更小相对值的first和second的值,则first和second均替换
                        else:
                            second = first
                            first = first_prepared
                            first_prepared = sys.maxsize
                
            return False
                            
  • 相关阅读:
    洛谷 3393 逃离僵尸岛
    洛谷 3275 [SCOI2011]糖果
    SP1437 Longest path in a tree(树的直径)
    洛谷2483 k短路([SDOI2010]魔法猪学院)
    洛谷3243 [HNOI2015]菜肴制作
    洛谷 4568 [JLOI2011] 飞行路线
    [USACO08DEC]在农场万圣节Trick or Treat on the Farm
    手机端table表格bug
    手机端左右滑动效果
    去掉手机端延迟300ms
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/13983263.html
Copyright © 2011-2022 走看看