Leetcode----------674. 最長連續遞增序列
阿新 • • 發佈:2018-11-09
給定一個未經排序的整數陣列,找到最長且連續的的遞增序列。
示例 1:
輸入: [1,3,5,4,7]
輸出: 3
解釋: 最長連續遞增序列是 [1,3,5], 長度為3。
儘管 [1,3,5,7] 也是升序的子序列, 但它不是連續的,因為5和7在原數組裡被4隔開。
示例 2:
輸入: [2,2,2,2,2]
輸出: 1
解釋: 最長連續遞增序列是 [2], 長度為1。
注意:陣列長度不會超過10000。
----------------------------------------------------------------------------------------------------------------------------------------------------------
動態規劃問題,和最長遞增子序列的思路基本類似,用一個數組d[]來存放在以nums[i]為末尾的最長遞增連續序列長度,
d[0]=1; 如果nums[i]>nums[i-1]的話,d[i]=d[i-1]+1; 否則d[i]=1;最後再迴圈一次找出d[]中的最大序列長度,即為結果。
AC:
class Solution {
public:
int dfs(vector<int>& nums)
{
int d[nums.size()]={0};
d[0]=1
for (int i=1;i<nums.size();i++)
{
if (nums[i]>nums[i-1])
d[i]=d[i-1]+1;
else
d[i]=1;
}
int max=0;
for (int i=0;i<nums.size();i++)
{
if (max<d[i])
max=d[i];
}
return max;
}
int findLengthOfLCIS(vector<int>& nums) {
if (nums.size()==0)
return 0;
return dfs(nums);
}
};
這道題還不錯超過了 96.84%的提交,還不錯,hhhhhh~e. 我會變強,可惜不是你。