题干:
给定一个
未经排序
的整数数组
,找到最长且连续的的递增序列
,并返回该序列的长度
。
示例 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。
思路:
核心问题:怎样定义连续递增序列:nums[i] < nums[i+1]
。
定义好了这个其他的就很简单了,定义一个变量存放数组中连续递增的数量,同时可以看到,这个递增的数量最小是1
而不是0
。
这个题的难度到是非常符合 easy
这个级别,也是我第一个几分钟就做出来的题目,但是还是由于没有定义边界和一个小问题导致了2次失败。
代码:
// 674
public static int findLengthOfLCIS(int[] nums) {
if (nums.length == 0 || nums == null) {
return 0;
}
int lastCount = 1;
int count = 1;
for (int i = 0; i < nums.length - 1; i++) {
if (nums[i] < nums[i + 1]) {
count++;
} else {
if (count > lastCount) {
lastCount = count;
}
count = 1;
}
}
return Math.max(lastCount, count);
}
Q.E.D.
Comments | 0 条评论