1. 程式人生 > >Leetcode----------674. 最長連續遞增序列

Leetcode----------674. 最長連續遞增序列

給定一個未經排序的整數陣列,找到最長且連續的的遞增序列。

示例 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.       我會變強,可惜不是你。