Given an unsorted array of integers, find the length of longest continuous
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.
题意:给定一个数组求其最长连续递增子序列的长度。
思路:
1.设置一个计数器cnt(初始化为1)用来表示当前最大连续子序列的长度,每次碰到第i项大于第i-1项,cnt加一,否则cnt置一,最后返回最大值即可。
2.注意数组可能为空,特判即可。
参考代码:
class Solution {
public:
int findLengthOfLCIS(vector<int>& nums) {
int n=nums.size(),cnt=1,mx=1;
if(n==0) return 0;
for(int i=1;i<n;++i){
if(nums[i]>nums[i-1])
++cnt;
else cnt=1;
mx=max(mx,cnt);
}
return mx;
}
};