leetcode-01 674.最长连续递增序列

674.最长连续递增序列     <非最优解>  Python 3

题目:

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

示例 1:

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

解题思路:

  • 标签:遍历
  • 过程:
    •  i 为数组中第i个数
    • count 用于存储序列
    • 首先判断nums的长度为0时输出空数组
    • 其次判断 i 的值是否小于nums的长度
      • 当 i 的值小于nums的长度时,将数组中nums[i]的值与前一个进行比较 ,大于则填进count数组中,且 i +1
      • 否则直接存入结果数组result
      • 最后对 i 进行遍历,到循环结束。 比较len(i)和max_len的值
  • 时间复杂度:O(N)
class Solution(object):
    def findLengthOfLCIS(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if len(nums) == 0:
            return 0
        result= []
        i = 1
        count = [nums[0]]
        while i < len(nums):
            if nums[i] > nums[i-1]:
                count.append(nums[i])
                i += 1
            else:
                result.append(count)
                i += 1
                count = [nums[i-1]]
        result.append(count)
        max_len = 1
        for i in result:
            if len(i) >  max_len:
                max_len =len(i)
        return max_len

猜你喜欢

转载自blog.csdn.net/qq_43299522/article/details/108519571