• 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 };
  • 相关阅读:
    Android Fragment和FragmentActivity区别和用法
    百度地图
    test
    Activity的跳转与传值
    判断Android应用是否安装、运行
    爬取当当网 Top 500 本五星好评书籍
    TED-WordCloud: 4000+视频标题词云分析
    记第一个爬虫
    requests-html简介
    用requests-html爬取7000+PDF
  • 原文地址:https://www.cnblogs.com/habibah-chang/p/12632755.html
Copyright © 2020-2023  润新知