LeetCode 674. Longest Continuous Increasing Subsequence

Description

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.

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 < rnums[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.

Constraints:

  • 1 <= nums.length <= 104
  • -109 <= nums[i] <= 109

Explanation

Iterate the list and compare it with the previous number and reach a conclusion what is the longest continuous sequence.

Python Solution

class Solution:
    def findLengthOfLCIS(self, nums: List[int]) -> int:
        max_count = 0
        
        if not nums:
            return max_count
        
        prev = nums[0]
        count = 1
        
        for num in nums[1:]:
            if num > prev:
                count += 1
            else:
                max_count = max(max_count, count)
                count = 1
                        
            prev = num
            
        return max(max_count, count)
  • Time Complexity: O(N).
  • Space Complexity: O(1).

Leave a Reply

Your email address will not be published. Required fields are marked *