674. Longest Continuous Increasing Subsequence

LeetCode 力扣

1. Description

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].

2. Example

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.

3. Constraints

  • 0 <= nums.length <= 10$^{4}$
  • -10$^{9}$ <= nums[i] <= 10$^{9}$

4. Solutions

Array

n = i_nums.size()
Time complexity: O(n)
Space complexity: O(1)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class Solution
{
public:
    // int findLengthOfLCIS(vector<int>& nums)
    int findLengthOfLCIS(vector<int> &i_nums)
    {
        if(i_nums.empty()) return 0;

        int result = 1;
        for(int i = 1, length = 1; i < i_nums.size(); i++)
        {
            length = (i_nums[i] > i_nums[i - 1] ? length + 1 : 1);

            result = max(result, length);
        }

        return result;
    }
};
Last updated:
Tags: Array
comments powered by Disqus