问题标题: 酷町堂:3821 好玩的序列折叠2求思路

0
0

1
已采纳
赵朗
赵朗
高级光能
高级光能

这道题并不需要用到DP或者递推,一个普通的for循环就行了,不必要这么复杂 @赵逸凡 

我们定义一个概念,叫做断点,就是一个点的值如果大于后面那个点的值,就被称为断点。

由题意得,一个 最大非递减子数组 必须是连续的,所以在这个数组里断点要求是最多的。

 

首先,要保证断点和断点后面的数不能同时出现在这个数组里,所以要想保证数组的长度最大,只能有一个断点和另一个断点的后面那个。

 

例如样例1,断点是2 和 5,所以数组中只能允许3,4,5同时出现。

∴最大长度为3

 

做法就是先找出所有断点,再取出相邻两个断点的位置差的最大值即可。

100%AC

0
我要回答