1479: 拔竹子
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:97
Solved:15
Description
小黑家后有个花园,花园中有一排竹子,有一天小白来小黑家玩,小白看到了这些竹子,小白有个喜好,它喜欢一排高度凹凸不平的竹子,于是他要求小黑对部分竹子进行拔除,使得剩余竹子左右之间高度差严格地在正数和负数之间交替。求满足上述条件下,如何拔除这些竹子使得剩余竹子数量最大。给你一个正整数数组 $h_i$ 代表一排竹子的高度,返回剩余竹子的最大数量。
例如:
示例一: 有6个竹子排成一排,[1, 7, 4, 9, 2, 5] 是这一排竹子的高度 ,由于当前竹子左右之间高度差差值 (6, -3, 5, -7, 3) 是正负交替出现的,所以无需拔除竹子,剩余最大竹子数量为6.
示例二: 有5个竹子排成一排,[1, 4, 7, 2, 5] 是这一排竹子的高度,由于当前竹子左右之间高度差差值(3, 3, -5, 3)不是正负交替出现的,所以需拔除竹子,可以拔第一个或第二个,剩余最大竹子数量为4.
注意:
一、当仅有一个竹子,即不存在高度差,则仍默认符合高度差严格地在正数和负数之间交替的条件,即返回1。
二、0不为正数也不为负数。
三、正负交替等同负正交替。
例如:
示例一: 有6个竹子排成一排,[1, 7, 4, 9, 2, 5] 是这一排竹子的高度 ,由于当前竹子左右之间高度差差值 (6, -3, 5, -7, 3) 是正负交替出现的,所以无需拔除竹子,剩余最大竹子数量为6.
示例二: 有5个竹子排成一排,[1, 4, 7, 2, 5] 是这一排竹子的高度,由于当前竹子左右之间高度差差值(3, 3, -5, 3)不是正负交替出现的,所以需拔除竹子,可以拔第一个或第二个,剩余最大竹子数量为4.
注意:
一、当仅有一个竹子,即不存在高度差,则仍默认符合高度差严格地在正数和负数之间交替的条件,即返回1。
二、0不为正数也不为负数。
三、正负交替等同负正交替。
Input
第一行,一个正整数 $n$ ($1 \le n \le 10^6 $)。
第二行,$n$ 个空格分隔的正整数,$h_1$,$h_2$, $h_3$... $h_n$ ( $ 1 \le h_i \le 10^6 $ ) 代表竹子的高度。
第二行,$n$ 个空格分隔的正整数,$h_1$,$h_2$, $h_3$... $h_n$ ( $ 1 \le h_i \le 10^6 $ ) 代表竹子的高度。
Output
一个数,代表剩余竹子的最大数量。
Sample Input Copy
9
1 2 3 4 5 6 7 8 9
Sample Output Copy
2