Given an unsorted array of integers, find the length of longest continuous
increasing
subsequence.
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.
数组的问题,一般应该时刻考虑着是否存在越界问题
java
class Solution {
public int findLengthOfLCIS(int[] nums) {
if (nums == null || nums.length == 0) {
return 0;
}
if (nums.length == 1) {
return 1;
}
int sum = 0;
for (int i = 1; i < nums.length; i++) {
int val = 1;
while (i < nums.length && nums[i] > nums[i - 1]) {
i++;
val++;
}
sum = Math.max(sum, val);
}
return sum;
}
}
python
class Solution(object):
def findLengthOfLCIS(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if nums is None or len(nums) == 0:
return 0
if len(nums) == 1:
return 1
summary = 0
for i in range(1, len(nums)):
val = 1
while (i < len(nums) and nums[i] > nums[i - 1]):
val += 1
i += 1
summary = max(val, summary)
return summary