首页 > 其他分享 >LeetCode刷题(49)~最长连续递增序列【双重循环/一次循环/滑动窗口】

LeetCode刷题(49)~最长连续递增序列【双重循环/一次循环/滑动窗口】

时间:2023-01-12 14:42:14浏览次数:47  
标签:count nums int 49 循环 result ans 序列 LeetCode

题目描述

给定一个未经排序的整数数组,找到最长且连续的的递增序列,并返回该序列的长度。

示例 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。

解答 By 海轰

提交代码(双重循环

int findLengthOfLCIS(vector<int>& nums) {
      int maxlength=0;
      if(nums.size()==0) return 0;
      for(int i=0;i<nums.size()-1;++i)
      {
         int nowmax=0;
         int j;
         for( j=i+1;j<nums.size();++j)
         {   
             if(nums[j]-nums[j-1]>0)
             ++nowmax;
             else 
             break;
         }
         i=j-1;
         if(maxlength<nowmax)
         maxlength=nowmax;
      }
      return maxlength+1;
       
    }

运行结果
LeetCode刷题(49)~最长连续递增序列【双重循环/一次循环/滑动窗口】_提交代码
提交代码(一次循环

  int findLengthOfLCIS(vector<int>& nums) {
     int len=nums.size();
     if(len<2) return len;
     int result=1;
     int count=1;
     for(int i=0;i<len-1;++i)
     { 
         if(nums[i+1]-nums[i]>0)
         ++count;
         else
         count=1;
         result=result>count? result:count;
     }   
     return result;
    }

运行结果
LeetCode刷题(49)~最长连续递增序列【双重循环/一次循环/滑动窗口】_其他_02
提交代码(滑动窗口

 int findLengthOfLCIS(vector<int>& nums) {
        int ans=0;
     int anchor=0;// 记录每个符合题意序列的起点
     for(int i=0;i<nums.size();++i)
     {
         if(i>0&&nums[i-1]>=nums[i]) anchor=i;
         ans=max(ans,i-anchor+1);
     }
     return ans;
    }

运行结果
LeetCode刷题(49)~最长连续递增序列【双重循环/一次循环/滑动窗口】_数组_03

题目来源

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-continuous-increasing-subsequence

标签:count,nums,int,49,循环,result,ans,序列,LeetCode
From: https://blog.51cto.com/u_15939722/6004145

相关文章

  • LeetCode刷题(50)~拼写单词【利用数组替换map/unordered_map 提高效率】
    题目描述给你一份『词汇表』(字符串数组)words和一张『字母表』(字符串)chars。假如你可以用chars中的『字母』(字符)拼写出words中的某个『单词』(字符串),那么我们就认......
  • LeetCode刷题(46)~颠倒二进制位【循环/分治】
    题目描述颠倒给定的32位无符号整数的二进制位。示例1:输入:00000010100101000001111010011100输出:00111001011110000010100101000000解释:输入的二进制串0000......
  • LeetCode刷题(45)~位1的个数【布赖恩·克尼根算法】
    题目描述编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为‘1’的个数(也被称为汉明重量)。示例1:输入:00000000000000000000000000001011输出:3解释:......
  • LeetCode刷题(38)~各位相加
    题目描述给定一个非负整数num,反复将各个位上的数字相加,直到结果为一位数。示例:输入:38输出:2解释:各位相加的过程为:3+8=11,1+1=2。由于2是一位数,......
  • LeetCode刷题(40)~第一个错误的版本【二分法:mid=l+(r-l)/2 避免mid=(l+r)/2溢出】
    题目描述你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所......
  • LeetCode刷题(72)~按既定顺序创建目标数组【!】
    题目描述给你两个整数数组nums和index。你需要按照以下规则创建目标数组:目标数组target最初为空。按从左到右的顺序依次读取nums[i]和index[i],在target数组中的......
  • LeetCode刷题(73)~Nim 游戏
    题目描述你和你的朋友,两个人一起玩Nim游戏:桌子上有一堆石头,每次你们轮流拿掉1-3块石头。拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优......
  • LeetCode刷题(76)~三步问题
    题目描述三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。示......
  • LeetCode刷题(75)~按摩师
    题目描述一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师......
  • LeetCode刷题(77)~三角形的最大周长
    题目描述给定由一些正数(代表长度)组成的数组A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回0。示例1:输入:[2,1,2]输......