算法笔记: 力扣#674 最长连续递增序列

问题描述


解法


分析

Python 实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class :
def findLengthOfLCIS(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
max_len = 0
cur_len = 0
prev = float("-inf")
for num in nums:
if num > prev:
cur_len += 1
else:
max_len = max(cur_len, max_len)
cur_len = 1
prev = num
return max(max_len, cur_len)

Java 实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class {
public int findLengthOfLCIS(int[] nums) {
int maxLen = 0;
int curLen = 0;
int prev = 0;
for(int num : nums){
if(num > prev){
curLen ++;
}else{
maxLen = maxLen > curLen ? maxLen : curLen;
curLen = 1;
}
prev = num;
}
return maxLen > curLen ? maxLen : curLen;
}
}

时间复杂度

O(n).

空间复杂度

O(1).

链接


674. Longest Continuous Increasing Subsequence
674. 最长连续递增序列
(English version) Algorithm Notes: Leetcode#674 Longest Continuous Increasing Subsequence