刷题之旅从数组类型的题目开始。第三十一道题目是最长连续递增序列,对应leetcode的题号为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 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| class Solution { public int findLengthOfLCIS(int[] nums) { if(nums.length < 1){ return 0; } if(nums.length == 1){ return 1; } int max = Integer.MIN_VALUE; int count = 1; for(int i=1;i<nums.length;i++){ if(nums[i] > nums[i-1]){ count++; if(count > max){ max = count; } }else{ count = 1; } } return count > max ? count : max; } }
|