-
Notifications
You must be signed in to change notification settings - Fork 0
/
674. Longest Continuous Increasing Subsequence.py
36 lines (29 loc) · 1.25 KB
/
674. Longest Continuous Increasing Subsequence.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""
https://leetcode.com/problems/longest-continuous-increasing-subsequence/
Given an unsorted array of integers nums, return the length of the longest continuous increasing subsequence
(i.e. subarray). The subsequence must be strictly increasing.
A continuous increasing subsequence is defined by two indices l and r (l < r) such that it is [nums[l], nums[l + 1],
..., nums[r - 1], nums[r]] and for each l <= i < r, nums[i] < nums[i + 1].
Example 1:
Input: nums = [1,3,5,4,7]
Output: 3
Explanation: The longest continuous increasing subsequence is [1,3,5] with length 3.
Even though [1,3,5,7] is an increasing subsequence, it is not continuous as elements 5 and 7
are separated by element 4.
Example 2:
Input: nums = [2,2,2,2,2]
Output: 1
Explanation: The longest continuous increasing subsequence is [2] with length 1. Note that it must be strictly
increasing.
"""
from typing import List
class Solution:
def findLengthOfLCIS(self, nums: List[int]) -> int:
longest = subs_len = 1
for i in range(1, len(nums)):
if nums[i] > nums[i-1]:
subs_len += 1
else:
longest = max(longest, subs_len)
subs_len = 1
return max(longest, subs_len)