674.最长连续递增序列

一、题目描述

给定一个未经排序的整数数组,找到最长且连续的的递增序列。

示例 1:

1
2
3
4
输入: [1,3,5,4,7]
输出: 3
解释: 最长连续递增序列是 [1,3,5], 长度为3。
尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。

示例 2:

1
2
3
输入: [2,2,2,2,2]
输出: 1
解释: 最长连续递增序列是 [2], 长度为1。

注意:数组长度不会超过10000。

二、题解

1.算法描述

  • 简单遍历

2.个人分析

  • for循环遍历整个数组,用中间变量temp记录每次的连续长度,用res与temp比较作为最大值

3.代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int findLengthOfLCIS(int *nums, int numsSize)
{
if (numsSize == 0)
return 0;
int i;
int temp = 1, res = 1;
for (i = 1; i < numsSize; i++)
{
if (nums[i] > nums[i - 1])
{
temp++;
}
else
{
res = res > temp ? res : temp;
temp = 1;
continue;
}
}
res = res > temp ? res : temp;
return res;
}