674. Longest Continuous Increasing Subsequence

问题:

求给定数组中,最长连续递增子数组

Example 1:
Input: [1,3,5,4,7]
Output: 3
Explanation: 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: 1
Explanation: The longest continuous increasing subsequence is [2], its length is 1. 

Note: Length of the array will not exceed 10,000.

  

解法:

从第二项开始轮询数组,

当该项大于前一项,则当前记录子数组长度curres++

反之,curres=1当前子数组长度回归重新记录 1,并同时去curres和历来res的最大值 res=max(res, curres)

 

参考代码:

 1 class Solution {
 2 public:
 3     int findLengthOfLCIS(vector<int>& nums) {
 4         int i, res=1, curres=1;
 5         if(nums.size()<1) return 0;
 6         for(i=1; i<nums.size(); i++){
 7             if(nums[i]>nums[i-1]){
 8                 curres++;
 9             }else{
10                 curres=1;
11             }
12             res=max(res,curres);
13         }
14         return res;
15     }
16 };

 

posted @ 2020-04-04 17:26  habibah_chang  阅读(91)  评论(0编辑  收藏  举报