当前位置: 首页 > news >正文

Leetcode 674 最长连续递增序列

题意理解:

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

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

        这里的子序列,要求连续,所以当碰到不递增的情况断开。

        这里采用动态规划的思路来进行解题。

解题思路:

        (1)dp[i]表示到nums[i]符合递增要求的子序列的最大长度。

        (2)初始化

                每个数字开始,都能获得一个长度的递增子序列

                所以dp数组初始化为1

        (3)递推公式

                if(dp[i-1]<dp[i])

                        dp[i]=dp[i-1]+1

1.解题

public int findLengthOfLCIS(int[] nums) {int[] dp=new int[nums.length];Arrays.fill(dp,1);for(int i=1;i< nums.length;i++){if(nums[i-1]<nums[i])dp[i]=dp[i-1]+1;}int max=0;for(int i=0;i<nums.length;i++){max=Math.max(dp[i],max);}return max;}

2.分析

时间复杂度: O(n)

空间复杂度: O(n)

http://www.lryc.cn/news/299118.html

相关文章:

  • 力扣题目训练(8)
  • 理解JAVA EE设计模式
  • GEE:梯度提升树(Gradient Boosting Tree)回归教程(样本点、特征添加、训练、精度、参数优化)
  • k8s-资源限制与监控 15
  • 【Ubuntu】在.bashrc文件中误设置环境变量补救方法
  • Imgui(1) | 基于imgui-SFML改进自由落体小球
  • Linux-Vim的使用,快速入门Vim,Linux入门教程,精讲Linux
  • 目标检测 | 卷积神经网络(CNN)详细介绍及其原理详解
  • 机器人学、机器视觉与控制 上机笔记(第一版译文版 2.1章节)
  • 关于vue2+antd 信息发布后台不足的地方
  • Ubuntu+Anaconda 常用指令记录
  • P5732 【深基5.习7】杨辉三角 python解法
  • VitePress-12-markdown中使用vue的语法
  • “bound drug/molecule”or “unbound drug/molecule”、molecule shape、sketching是什么?
  • 深入理解C语言中的函数指针:概念、机制及实战应用
  • 《UE5_C++多人TPS完整教程》学习笔记1 ——《P2 关于本课程(About This Course)》
  • 权限系统设计
  • Ubuntu Desktop - Screenshot (截图工具)
  • docker 1:介绍
  • RibbonBar RibbonPage切换事件
  • Conda历史版本下载地址和python对应关系
  • Clickhouse查询语句执行过程
  • 【动态规划】【中位数】【C++算法】1478. 安排邮筒
  • C#系列-数据结构+递归算法+排序算法(3)
  • Redis实现秒杀
  • 4 scala集合-Map
  • QT 对象树模型
  • ubuntu快速安装miniconda
  • 阿里云游戏服务器多少钱一年?
  • 小游戏和GUI编程(7) | SimpleNN 界面源码解析