674_Longest Continuous Increasing Subsequence
Given an unsorted array of integers, find the length of longestcontinuous
increasing subsequence (subarray).
Example 1:
Input:
[1,3,5,4,7]
Output:
3
Explanation:
The longest continuous increasing subsequence is [1,3,5], its length is 3.
Even though [1,3,5,7] is also an increasing subsequence, it's not a continuous one where 5 and 7 are separated by 4.
Example 2:
Input:
[2,2,2,2,2]
Output:
1
Explanation:
The longest continuous increasing subsequence is [2], its length is 1.
Note:Length of the array will not exceed 10,000.
Solution
我们可以使⽤⼀个计数器 curLength,如果遇到⼤的数字,计数器⾃增1 ;如果是⼀个⼩的数字,则计数器重置为1 。同时需要迭代目前为止的最大长度 maxLength.
Time O(n) Space O(1)
class Solution(object):
def findLengthOfLCIS(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums) == 0:
return 0
curLength, maxLength = 1, 1
for i in range(1, len(nums)):
cur = nums[i]
if cur > nums[i-1]:
curLength += 1
maxLength = max(maxLength, curLength)
else:
curLength = 1
return maxLength
Last updated
Was this helpful?