Longest Continuous Increasing Subsequence 最长连续递增序列

/**
 * references:
 * https://www.cnblogs.com/grandyang/p/7608976.html
 * @brief The Solution class
 * Given an unsorted array of integers, find the length of longest continuous increasing subsequence.
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.
*/

class Solution{
public:
    int findLengthOfLCIS(vector<int>& nums){
        int res = 0,cnt = 0,cur = INT_MAX;
        for(int num : nums){
            if(num > cur) ++cnt;
            else
                cnt = 1;
            res = max(res,cnt);
            cur = num;
        }
        return res;
    }
};

class Solution{
public:
    int findLengthOfLCIS(vector<int>& nums){
        int res = 0,cnt = 0,n = nums.size();
        for(int i = 0; i < n; ++i){
            if(i == 0 || nums[i-1] < nums[i]) res = max(res,++cnt);
            else
                cnt = 1;
        }
        return res;
    }
};

猜你喜欢

转载自www.cnblogs.com/hujianglang/p/12469537.html