题目
给定一个未经排序的整数数组,找到最长且连续的的递增序列。
示例 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。
思路
- 从头开始遍历,如果是前面一个数大于后面的一个数,计数器就加一
- 如果是相等,注意!!!我一开始以为相等就直接跳过,计数器没有被阻断,就接着遍历下一个,最后看别人的才发现,这种情况也是需要重置计数器的。
- 如果前一个数大于后面一个数,就重置计数器为1。
代码如下:
class Solution:
def findLengthOfLCIS(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
lens = len(nums)
if lens == 0:
return 0
count = 1
result = 1
for i in range(1,lens):
if nums[i]>nums[i-1]:
count = count+1
else:
result = max(result,count)
count = 1
return max(result,count)