674 Longest Continuous Increasing Subsequence
Given an unsorted array of integers, find the length of longestcontinuousincreasing subsequence (subarray).
Example 1:
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:
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.
Solution)
First, we have to find the "increasing" subsequence. So, we can increase the length of the subsequence when the current value is greater than the previous number. If not, we can keep the current length is 1.
class Solution {
public int findLengthOfLCIS(int[] nums) {
if (nums.length < 2) return nums.length;
int longest = 1;
int length = 1;
for (int i = 1; i < nums.length; i++) {
if (nums[i-1] < nums[i]) {
length++;
longest = Math.max(longest, length);
} else {
length = 1;
}
}
return longest;
}
}
class Solution(object):
def findLengthOfLCIS(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums) < 2:
return len(nums)
longest = 1
length = 1
for i in xrange(1,len(nums)):
if nums[i-1] < nums[i]:
length += 1
if length > longest:
longest = length
else:
length = 1
return longest