给定一个未经排序的整数数组,找到最长且连续的的递增序列。
示例 1:
输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3。 尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。
最长连续递增子序列,解法就直接模拟,从1-n,要是a[i]<a[i+1],长度加一,碰到a[i]>=a[i+1]就更新最长的递增序列长度
class Solution {
public:
int findLengthOfLCIS(vector<int>& nums) {
int n=nums.size();
if(n==0)
return 0;
int ans=0;
int tempans=1;
for(int i=0;i<n-1;i++)
{
if(nums[i]<nums[i+1])
tempans++;
else
{
if(tempans>ans)
ans=tempans;
tempans=1;
}
}
return max(ans,tempans);
}
};
最长上升子序列,可以不连续,就是dp来做了,具体可以看简单dp思想。