一组数中最长连续递增子序列个数

动态规划之递增子序列 因为题目要求连续,因此dp[i]仅能通过dp[i - 1]推出,易得dp[i] = dp[i - 1] + 1,以上述示例来看,for循环从下标1开始,即遍历元素3,3大于首元素1,dp[2] = dp[1] + 1,dp[2] = 2,5 > 3,dp[3] = 3,4 < 5,dp[4]保持初始化值为1,7 > 4,dp[5] = 2,显然连续最长递增子序列出现在dp[3],而不是dp[5],因此需要使用ans记录最长连续递增子序列的长度。输入:nums = [10,9,2,5,3,7,101,18] 阅读详情

题意:有一组数,如,1,2,3,-2,4,6,10,求该组数中最长连续递增子序列的个数,显然这道题的答案是从-2到10一共4个数,所以结果为4.

解析:这道题最直观的方法就是用两个嵌套的循环,遍历的过程中,当当前数比上一个数大时,则计数变量加1,否则退出内层循环,将计数变量和当前最大连续递增个数变量比较,当比其大时,重新赋值最大连续递增个数变量。这种方法的时间复杂度显然为O(n^2)。

这里我使用另外一种可以使得时间复杂度降至O(n)的方法:(结合代码和注释应该可以看懂,好困,就不解释了╮(╯▽╰)╭)

java代码如下:

import java.util.Random;
public class SlopeUp {
	public static void main(String[] args) {
		int count=30;//测试30个数据
		int[] nums=new int[count];
		Random random=new Random();
		for(int i=0;i<count;i++){
			nums[i]=random.nextInt(100);
			System.out.print(nums[i]+" ");
		}
		System.out.println();
		new SlopeUp().process(nums);
	}
	
	private int[] a; //a[i]表示从开始到i最长连续递增子序列个数,最后的结果为:a[a.length-1]
	private int[] b; //b[i]表示到当前i位置有多少个连续递增个数,如-1,2,4,0,3 则b[2]=3;b[4]=2
	public void process(int[] nums){
		a=new int[nums.length];
		b=new int[nums.length];	
		for(int i=1;i<nums.length;i++){
			
			if(nums[i]>nums[i-1]){
				b[i]=b[i-1]+1;
				if(b[i]+1>a[i-1]){
					System.out.println("The End Number Is:"+nums[i]);
					a[i]=b[i]+1;
				}else{
					a[i]=a[i-1];
				}
			}else{
				a[i]=a[i-1];
			}
		}
		System.out.println(a[a.length-1]);
	}
	
}



微信删除的聊天记录怎么恢复(2024年最新攻略合集) 随着微信对我们生活中方方面面的渗透,微信已然从一款简单的社交软件过渡成为现时代的一种生活方式,而微信中的聊天记录就是我们和朋友之间历程的最好证明。对此,今天我们来聊聊微信删除的聊天记录怎么恢复的问题。 阅读详情

相关推荐

Win11下Edge浏览器CPU占用飙升?试试这5个隐藏设置(附实测对比图)

本文详细解析了Win11下Edge浏览器CPU占用飙升的原因,并提供了5个关键设置优化方案,包括禁用硬件加速、管理扩展程序等,有效降低资源消耗。实测数据显示优化后CPU占用显著下降,适合Win11用户提升浏览器性能。

weixin_29266679的博客 1507

最长连续递增子序列(Longest Continuous Increasing Subsequence)

题目解释: 最长连续递增子序列是在一个未经排序的整数数组中,最长且连续的的递增序列,简称 LCIS。 例如: [1,3,5,4,7], 最长连续递增序列是 [1,3,5], 长度为3,尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。 [2,2,2,2,2], 最长连续递增序列是 [2], 长度为1。 思路分析: ...

qq_36501006的博客 3875

《探秘 BME680温度湿度气压气体传感器模块:环境感知的卓越之选》:此文为AI自动生成

BME680 是一款由博世公司推出的集成环境传感器模块,在环境监测和物联网等领域中发挥着重要作用。它能够同时测量温度、湿度、气压和气体浓度等多个环境参数,为各种应用提供准确可靠的环境数据。该模块采用小巧的封装形式,便于集成到各种设备中,无论是智能家居、可穿戴设备还是工业监测系统,都能轻松适配。例如,在智能家居系统中,BME680 模块可以监测室内环境参数,如温度、湿度、气压和空气质量等。通过与智能家居控制器或智能手机应用程序的连接,用户可以实时了解室内环境状况,并根据需要进行调整。

zheng_ruiguo的专栏 1867

最长连续递增子序列

给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。 输入格式: 输入第1行给出正整数n(≤10^5);第2行给出n个整数,其间以空格分隔。 输出格式: 在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。 输入样例: 15 1 9 2 5 7 3 4 6 8 0 11 15 17 17 10 输出样例: 3 4 6 8 #include <stdio.h

Mai___的博客 3372

S32K1XX调试--快速定位HardFault

1、背景 程序运行,发现程序跑飞到HardFault,但不清楚为什么会跑到HardFault中断处理函数去。 2、分析 要想知道为什么会跑到HardFault_Handler中去,就很有必要了解一下,程序上一条执行的是那条命令。 根据汇编指令可以定位上条指令,但如果对汇编指令不是很了解的话,那就很头疼了 根据单步运行也能实现定位,但如果程序量很大,又很杂,可能花费的时间就比较久些。 3、问题查找 提供一种不需要懂汇编指令的查找方法,方法如下: 在中断处理函数中插入以下代码,以及另外定义

ping_devil的博客 4019

R语言,charls数据库清洗、基线特征描述、logistics回归、rcs模型、森林图

【代码】R语言,charls数据库清洗、基线特征描述、logistics回归、rcs模型、森林图。

2402_87751128的博客 2512

最长递增子序列问题(你真的会了吗)

1.对应牛客网链接2.题目描述: 3.解题思路下面以[5,7,1,9,4,6,2,8,3]为例:4.对应代码:1.对应牛客网链接:2.题目描述: 3.解题思路:4.对应代码:1.对应letecode链接:2.题目描述:3.解题思路4.对应代码:...

qq_56999918的博客 9635

ONFI5.0命令字实战指南:从基础操作到高级应用

本文深入解析ONFI5.0协议的核心——命令字,提供从基础操作到高级应用的实战指南。详细拆解了NAND闪存的复位、读状态、数据读取(00-30)、页编程(80-10)和块擦除(60-D0)等关键命令周期,并探讨了多平面操作与缓存操作等高级性能优化技巧,帮助开发者高效、稳定地与NAND芯片进行底层交互。

vscode5coder的博客 462

LeetCode: 最长递增子序列(以及子序列个数)、最长连续递增序列、最长连续序列、最长公共子序列(动态规划、二分查找、贪心算法)

300. 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1: 输入:nums = [10,9,2,5,3,7,101,18] 输出:4 解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。 示例 2: 输入:nums = [0,1,0,3,2,3] 输出:4 示例 3: 输入:nums

Tiger数学之家的博客 2186

备战2025数学建模国赛(算法65):Fisher判别分析

在数学建模竞赛中,我们常常会遇到需要对研究对象进行分类或判断的问题。例如,根据西瓜的各类指标判断其好坏,根据经济数据判断一个国家的发展程度,或根据病人的医学影像特征判断其是否患病。这类“分类判别”问题,是建模竞赛中最常见的题型之一。Fisher判别分析(或称线性判别分析,LDA)作为一种经典的、有监督的降维与分类方法,因其模型简洁、可解释性强、计算高效而备受青睐。

YOLO 422

2026.5.3:Ubuntu26.04下uv所需的环境变量pyproject.toml

本文档提供了Python开发环境的配置指南。主要包括: 设置环境变量(HF_ENDPOINT、UV_PYTHON_INSTALL_MIRROR等) 创建pyproject.toml配置文件,定义项目元数据(名称、版本等) 指定依赖项(torch系列库)及其安装源(PyTorch官方CUDA 12.8镜像) 配置Python版本要求(>=3.13,<3.14) 设置平台限制(Linux/Windows) 该配置适用于需要PyTorch CUDA 12.8支持的项目开发环境搭建。

拥抱具身智能,昇腾Ascend C 588

【PTA】7-2 最长连续递增子序列

题目: 7-2 最长连续递增子序列 (15 分) 给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。 输入格式: 输入第1行给出正整数n(≤10 ​5 ​​ );第2行给出n个整数,其间以空格分隔。 输出格式: 在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不...

YuXi_0520的博客 5899

基于Django+Vue3的目标检测系统设计与实现,Web前后端分离,Vue3前台系统+Django后台管理系统开发,YOLOv11 Web目标检测,实现图片、视频和摄像头检测等功能,全网独发

基于Django+Vue3的智能目标检测系统设计与实现,Web前后端分离,YOLOv11 Web目标检测,Vue3前台系统+Django后台管理系统开发,实现图片检测、视频检测、摄像头检测、登录、注册和个人中心功能

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 3667

动态规划9:最长递增子序列、最长连续递增序列、最长重复子数组、最长公共子序列、不相交的线、最长子序和

例题300:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。

evildoerxmf的博客 8558

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

7-2 最长连续递增子序列

7-2 最长连续递增子序列 (20 分)给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。 输入格式: 输入第1行给出正整数n(≤10​5​​);第2行给出n个整数,其间以空格分隔。 输出格式: 在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。 ...

闵野的博客 9507

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

最长连续递增子序列长度和最长不连续递增子序列长度

最长连续递增子序列长度和最长不连续递增子序列长度 1.最长连续递增子序列 例如:Array[6] = {1,5,2,4,3,8} 其最长连续递增子序列就2,4或3,8,最长长度为2 设数组dp[i],表示以i为结尾的最长连续子序列长度,即上述数组的dp数组即为 dp[6] = {1,1,1,2,1,2} 代码如下 #include&lt;iostream&gt; using namespace s...

QingtianD的博客 4649

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JAVA-数组中最长连续递增子序列

题目描述: 找出一个数组中最长连续递增子序列(部分有序),例如: (1, 9 , 2 , 5 , 7 , 3 , 4 , 6, 8,0, )中递增的子序列有:(1,9)、(2,5)、(5,7)、(3,4,6,8)则最长的递增子序列 为(3, 4, 6, 8) import java.util.Scanner; public class 最长连续递增序列 { /** * @para...

YCCX_LHH21的博客 2005

[PTA]最长连续递增子序列

算法查找该线性表中最长的连续递增子序列。

jumoure的博客 2759

最长上升( 递增 )子序列与最长连续上升( 递增 )子序列( LIS )

文章目录最长上升( 递增 )子序列与最长连续上升( 递增 )子序列( LIS )1. 最长上升子序列题目描述说明暴力 dp 解法转化为LCS求解二分查找+贪心2.最长连续上升子序列题目描述dp 解法3. 最长递增子序列的个数题目描述dp 解法 最长上升( 递增 )子序列与最长连续上升( 递增 )子序列( LIS ) 1. 最长上升子序列 LintCode题目地址: 76. 最长上升子序列 Leet...

charlsonzhao的博客 2092

用java实现 最长连续递增子序列

7-52最长连续递增子序列(20 分) 给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。 输入格式: 输入第1行给出正整数n(≤10​5​​);第2行给出n个整数,其间以空格分隔。 输出格式: 在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能...

一曲无痕奈何 4162

最长递增子序列 最长连续递增序列 最长重复子数组

为什么一定表示 “以nums[i]结尾的最长递增子序” ,因为我们在 做 递增比较的时候,如果比较 nums[j] 和 nums[i] 的大小,那么两个递增子序列一定分别以nums[j]为结尾 和 nums[i]为结尾, 要不然这个比较就没有意义了,不是尾部元素的比较那么 如何算递增呢。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。但dp[i][0] 和dp[0][j]要初始值,因为 为了方便递归公式dp[i][j] = dp[i - 1][j - 1] + 1;

波风水门的博客 1195

Day46 | 动态规划 :线性DP 最长递增子序列&&最长连续递增子序列

本次题解参考自灵神的做法,大家也多多支持灵神的题解1.思考回溯法(深度优先遍历)怎么写注意要画树形结构图2.转成记忆化搜索看哪些地方是重复计算的,怎么用记忆化搜索给顶替掉这些重复计算3.把记忆化搜索翻译成动态规划基本就是1:1转换。

m0_74795952的博客 1298

递增子序列的相关题目总结

目录 1.最长连续递增序列 2.最长上升子序列 3、最长递增子序列的个数 4、递增子序列 5、最长连续序列 这里总结一些递增子序列的相关题目,有的题目中会有最优解,但是这里主要关注的是动态规划的做法,所以只写出动态规划或者通用的一些方法。 介绍这些题目之前,先分清一下什么是子序列,什么是子串 子序列:子序列是不连续的,如序列[4, 6, 5]是[1, 2, 4, 3, 7, 6, 5]的一个子序列 子串:子串是连续的 1.最长连续递增序列 输入: [1,3,5,4,7]...

Matrix_cc的博客 588

最长递增子序列 && 最长连续递增序列

引言 这两道题有很大的相似性,在这里主要的地方就是循环的设置,不仅仅适用于这两道题,在很多类似的题目中都可以用到,要学会相应的方法才行; 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1: 输入:nums = [10,9,2,5,3,7,101,18] 输出:4 解释:最长递增子序列是 [2,3,7,101]

YXXXYX的博客 737

7-52 最长连续递增子序列

7-52最长连续递增子序列(20 分) 给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。 输入格式: 输入第1行给出正整数n(≤10​5​​);第2行给出n个整数,其间以空格分隔。 输出格式: 在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能...

weisiyu_liang的博客 710
上一篇: 翻手算法
下一篇: 整数划分
KeepThinking_
博客等级 码龄15年 50粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值