首页 > 试题广场 >

最长严格上升子数组(一)

[编程题]最长严格上升子数组(一)
  • 热度指数:2488 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为n的正整数数组nums,可以任意改变数组的其中一个元素,改变的元素范围也在[1,100000]之内,然后返回nums的最长"严格上升"子数组的长度。
1.子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组
2.严格上升指在数组上任意位置都满足 nums[i] < nums[i+1],比如[1,2,2,3],其中[1,2,2]不是严格上升的子数组,[1,2]是的
数据范围:
要求: 空间复杂度 ,时间复杂度
示例1

输入

[7,2,3,1,5,6]

输出

5

说明

将1改为4,最长严格上升子数组为[2,3,4,5,6]      
示例2

输入

[1,2,3,4]

输出

4

说明

最长严格上升子数组为[1,2,3,4]      
示例3

输入

[1,2,2,3]

输出

3

说明

改变一个元素之后,最长严格上升子数组为[1,2,3]或者[2,3,4],长度都为3      

这道题你会答吗?花几分钟告诉大家答案吧!