📅  最后修改于: 2023-12-03 14:58:26.972000             🧑  作者: Mango
给定一个整数数组 arr
,找出该数组中的最长连续递增序列,返回该序列的长度。
输入:
arr = [1,3,5,4,7]
输出:
3
解释: 最长连续递增序列是 [1,3,5], 长度为 3。
依次遍历数组,记录当前连续递增序列的起点和长度,如果遇到非递增数,则更新最长连续递增序列的长度,并重新记录连续递增序列起点和长度。
class Solution:
def findLengthOfLCIS(self, nums: List[int]) -> int:
if not nums:
return 0
max_len = 1
curr_start = 0
curr_len = 1
for i in range(1, len(nums)):
if nums[i] > nums[i-1]:
curr_len += 1
else:
max_len = max(max_len, curr_len)
curr_len = 1
curr_start = i
max_len = max(max_len, curr_len)
return max_len
时间复杂度:$O(n)$,需要遍历一次数组。
空间复杂度:$O(1)$,只需要记录当前链的起点和长度。