Problem
Given an unsorted array of integers, find the length of longest continuous increasing subsequence (subarray).
Example 1:
Input: [1,3,5,4,7]Output: 3Explanation: The longest continuous increasing subsequence is [1,3,5], its length is 3. Even though [1,3,5,7] is also an increasing subsequence, it's not a continuous one where 5 and 7 are separated by 4. Example 2:Input: [2,2,2,2,2]Output: 1Explanation: The longest continuous increasing subsequence is [2], its length is 1. Note: Length of the array will not exceed 10,000.Solution #1 using index
class Solution { public int findLengthOfLCIS(int[] nums) { if (nums == null || nums.length == 0) return 0; int start = 0, max = 1, pre = nums[0]; for (int i = 1; i < nums.length; i++) { if (nums[i] > pre) { pre = nums[i]; max = Math.max(max, i-start+1); } else { pre = nums[i]; start = i; } } return max; }}
Solution #2 using count
class Solution { public int findLengthOfLCIS(int[] nums) { if (nums == null || nums.length == 0) return 0; int count = 1, max = 1; for (int i = 1; i < nums.length; i++) { if (nums[i] > nums[i-1]) { count++; max = Math.max(max, count); } else { count = 1; } } return max; }}