前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Leetcode:最长连续递增序列

Leetcode:最长连续递增序列

作者头像
Liusy
发布2021-02-01 11:01:12
6880
发布2021-02-01 11:01:12
举报
文章被收录于专栏:Liusy01Liusy01

题目:

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

连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。

示例:

代码语言:javascript
复制
输入:nums = [1,3,5,4,7]
输出:3
解释:最长连续递增序列是 [1,3,5], 长度为3。
尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为 5 和 7 在原数组里被 4 隔开。 
代码语言:javascript
复制
输入:nums = [2,2,2,2,2]
输出:1
解释:最长连续递增序列是 [2], 长度为1。

提示:

代码语言:javascript
复制
0 <= nums.length <= 104
-109 <= nums[i] <= 109

解题:

思路:

暴力求解,用一个变量start记录起始下标,直接从1开始遍历数组

如果当前元素<=前一个元素,更改start为当前下标,对于result和当前元素减去start取最大值

为了确保数组是连续递增的情况下依然可以求解,所以后面还得取两者最大值

我的解答:

代码语言:javascript
复制
class Solution {
    public int findLengthOfLCIS(int[] nums) {
        int result = 0;
        int start = 0;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i]<=nums[i-1]) {
                result =  i-start > result ? i-start : result ;
                start = i;
            }
        }
        result =  nums.length-start > result ? nums.length-start : result ;

        return result;
    }
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Liusy01 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目:
    • 示例:
      • 提示:
      • 解题:
        • 思路:
          • 我的解答:
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档