美文网首页
674. 最长连续递增序列

674. 最长连续递增序列

作者: Chiduru | 来源:发表于2020-06-28 01:02 被阅读0次

    【Description】
    给定一个未经排序的整数数组,找到最长且连续的的递增序列,并返回该序列的长度。

    示例 1:

    输入: [1,3,5,4,7]
    输出: 3
    解释: 最长连续递增序列是 [1,3,5], 长度为3。
    尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。
    示例 2:

    输入: [2,2,2,2,2]
    输出: 1
    解释: 最长连续递增序列是 [2], 长度为1。

    注意:数组长度不会超过10000。

    【Idea】
    两种方法。

    1. 暴力解, 直接遍历,用tag去标记临时位;
    2. 滑窗,用下标来标记(其实跟1半斤八两

    复杂度很难看,硬性O(n)避不开,看了一些题解也都差不多,就没有再优化了

    【Solution】

    class Solution:
        def findLengthOfLCIS(self, nums: List[int]) -> int:
            length = len(nums)
            if length < 2:
                return length
    
            # res = 0
            # anchor = 0
            # tp_len = 1
            # for i in range(1, length):
            #     if nums[i] > nums[i-1]:
            #         tp_len += 1
            #     else:
            #         res = max(res, tp_len)
            #         tp_len = 1
            #     print(nums[i], tp_len, res)
            # return max(res, tp_len)
    
            res = 0
            tag = 0
            for i in range(1, length):
                if nums[i] <= nums[i-1]:
                    tag = i
                res = max(res, i-tag+1)
                # print(nums[i], tag, res)
            return res
    
    截屏2020-06-28 上午12.58.33.png

    相关文章

      网友评论

          本文标题:674. 最长连续递增序列

          本文链接:https://www.haomeiwen.com/subject/axgbfktx.html