#3958. 🐾 兔猫摇摆之舞
🐾 兔猫摇摆之舞
🐾 兔猫摇摆之舞
(Rabbit‑Cat Informatics Academy · 加菲老师课堂)
故事背景
上午的算法课上,加菲老师搬来一台巨型音响。音乐一起,小兔和小猫立即扭动起来——可是老师却按下暂停键:“别急!真正的摇摆之舞需要严格的正负节拍交替。 假如两个连续动作的节拍差值严格地在正数、负数之间轮流出现,那么整段舞蹈就合格。今天的编程任务,就是帮我从动作序列中挑出一支最长的摇摆舞!”
题目描述
给定整数数组 $nums$。若其任意相邻元素差值 严格地在正数与负数之间交替,则称该序列为摆动序列。
- 只有一个元素或恰有两个不等元素的序列也视为摆动序列。
- 子序列可通过删除若干元素(保持相对顺序)得到。
请输出 $nums$ 中能构成的 最长摆动子序列长度。
输入格式
n
a1 a2 … an
- $n$ — 数组长度
- 第二行 $n$ 个整数 $0\le a_i\le1000$
输出格式
ans
ans
— 最长摆动子序列长度
样例
6
1 7 4 9 2 5
6
差值序列 $(6,-3,5,-7,3)$ 正负交替,整个数组即为最长摆动子序列,长度 $6$。
10
1 17 5 10 13 15 10 5 16 8
7
取子序列 $[1,17,10,13,10,16,8]$,差值 $(16,-7,3,-3,6,-8)$ 交替出现,长度 $7$。
数据范围
参数 | 约束 |
---|---|
$1\le n\le1000$ | |
$0\le nums_i\le1000$ |