难度简单
给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。
连续递增的子序列 可以由两个下标 l
和 r
(l < r
)确定,如果对于每个 l <= i < r
,都有 nums[i] < nums[i + 1]
,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]]
就是连续递增子序列。
思路:
遍历数组,根据当前数据和前一个数据的大小判断该位置是否连续递增的数据,并得到最大的连续数据长度。
代码:
int findLengthOfLCIS(vector<int>& nums) {
int ans=0,temp=1,len=nums.size();
if(!len) return len;
for(int i=1;i<len;++i){
if(nums[i]>nums[i-1])
temp++;
else{
ans=max(temp,ans);
temp=1;
}
}
return max(temp,ans);
}