Problem:
Given an unsorted array of integers, find the length of longest continuous
increasing subsequence.
Example 1:
1 2 |
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:
1 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.
Idea:
Dynamic Programming
Solution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Author: Huahua class Solution { public: int findLengthOfLCIS(vector<int>& nums) { if (nums.empty()) return 0; int cur = 1; int ans = 1; for (int i = 1; i < nums.size(); ++i) { if (nums[i] > nums[i-1]) { ++cur; ans = max(ans, cur); } else { cur = 1; } } return ans; } }; |