674-最长连续递增序列
...
💬 描述
给定一个未经排序的整数数组,找到最长且连续的的递增序列。 示例 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。
💡 思路
遍历数组。ans为最终准备返回的长度值,curLen为当前下标对应的长度。 每次遍历中,如果下一个数比前面的数大,则curLen++,否则代表连续递增中断了,将curLen重置为1。 每次循环的最后,比较ans和curLen,将较大者赋给ans。 循环结束后,返回ans。
📋 代码
class Solution {
public int findLengthOfLCIS(int[] nums) {
if (nums.length <= 1) return nums.length;
int ans = 1, curLen = 1;
for (int i = 0; i < nums.length-1; i++) {
if (nums[i+1] > nums[i]) {
curLen++;
} else {
curLen = 1;
}
ans = curLen > ans ? curLen : ans;
}
return ans;
}
}
复杂度: 时间:O(n) 空间:O(1)
你认为这篇文章怎么样?
- 0很棒
- 0不错
- 0一般
- 0???