leetcode 674. 最长连续递增序列

news/2025/2/13 21:21:32/

  • 题目描述
  • 解题思路
  • 执行结果
leetcode 674. 最长连续递增序列


题目描述

  1. 最长连续递增序列

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

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

示例 1:

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

输入:nums = [2,2,2,2,2] 输出:1 解释:最长连续递增序列是 [2], 长度为1。

提示:

1 <= nums.length <= 104 -109 <= nums[i] <= 109

解题思路

法1

指针
申请一个指针

  1. 首先判断给定的数组是否为空,如果是则直接返回0,否则开始遍历数组。用变量maxLength记录最长连续递增子序列的长度,用变量curLength记录当前连续递增子序列的长度,初始化curLength为1,因为任何单个元素都是连续递增子序列。

遍历数组时,若当前元素大于前一个元素,则将curLength加1,否则将curLength重置为1,表示从当前元素开始重新计算连续递增子序列的长度。如果curLength大于maxLength,则更新maxLength的值。

最后返回maxLength的值即可。

  1. (i作为递增数量的判断位置)

判断数据是否递增:i-1位置的数值小于i位置为递增

循环遍历数组直到遍历完整个数组返回最长的递增长度.

  • 时间复杂度(O(n))
  • 空间复杂度(O(1))

执行结果

法1

func findLengthOfLCIS(nums []int) int {
    if len(nums) == 0 {
        return 0
    }
    maxLength, curLength := 11//分别储存最大的长度与当前的长度
    for i := 1; i < len(nums); i++ {
        if nums[i] > nums[i-1] {
            curLength++
            if curLength > maxLength {
                maxLength = curLength
            }
        } else {
            curLength = 1
        }
    }
    return maxLength
}


执行结果: 通过 显示详情 查看示例代码 添加备注

执行用时: 8 ms , 在所有 Go 提交中击败了 61.52% 的用户 内存消耗: 4.1 MB , 在所有 Go 提交中击败了 69.89% 的用户 通过测试用例: 35 / 35 炫耀一下:

本文由 mdnice 多平台发布


http://www.ppmy.cn/news/59964.html

相关文章

SQL 招聘网站岗位数据分析

数据清洗 1.删除包含空字段的行 create view v_data_clean_null as select * from data d where job_href is not null and job_href ! and job_name is not null and job_name ! and company_href is not null and company_href ! and company_name is not null and com…

Golang-map底层原理刨析

map底层原理刨析 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yz8FjpJt-1683362716010)(https://gitee.com/cqfbest/md/raw/master/img2//v2-95697e3e2584722431ab1c37f3a61736_1440w.jpg)] Go 语言内置了 map 数据结构, map 的底层便是一个 Has…

解决echarts图表随窗口宽度变化而改变图表的大小

文章目录 前言一、演示前后对比效果二、解決方法1.在代码结尾加上监听方法2.示例 三、总结扩展问题 前言 很多同学在使用echarts时遇到了浏览器窗口大小发生变化时&#xff0c;图表大小没有自适应窗口的宽度&#xff0c;下面我将对比演示随着窗口大小变化&#xff0c;echarts图…

container的讲解

我们做开发经常会遇到这样的一个需求&#xff0c;要开发一个响应式的网站&#xff0c;但是我们需要我们的元素样式跟随着我们的元素尺寸大小变化而变化。而我们常用的媒体查询&#xff08;Media Queries&#xff09;检测的是视窗的宽高&#xff0c;根本无法满足我们的业务需求&…

urllib爬取图片

使用 urllib 库来爬取图片 import urllib.request# 图片的 URL 链接 image_url "http://img.netbian.com/file/2023/0415/235643ofSA0.jpg"# 获取图片并保存到指定路径 urllib.request.urlretrieve(image_url, "image.jpg")这段代码中&#xff0c;首先指定…

分析linux中动态库so文件的常用方法

前言 在linux系统中&#xff0c;我们经常会遇到各种各样的动态库文件&#xff0c;常见的是.so后缀&#xff0c;那么我们应该如何分析这些文件的用途和作用呢&#xff1f;毕竟我们不能一知半解的“搞事情”。 正文 查看文件属性 首先&#xff0c;我们从整体上了解一下该文件的基…

【Unity-UGUI控件全面解析】| Toggle 开关组件详解

🎬【Unity-UGUI控件全面解析】| Toggle 开关组件详解一、组件介绍二、组件属性面板三、代码操作组件四、组件常用方法示例4.1 监听开关事件五、组件相关扩展使用5.1 配合Toggle Group组使用💯总结🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y …

车载搭载SystemUI音频技术,全方位呈现高品质音效

SystemUI概述 SystemUI 是 Android 操作系统中的一个系统服务&#xff0c;主要负责管理和显示系统界面元素&#xff0c;例如状态栏、通知栏、键盘和屏幕截图等。SystemUI 系统服务是系统级别的组件&#xff0c;提供的功能对于用户体验和系统安全性都非常重要。 SystemUI 的主…