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