- 摆动序列
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。
class Solution {
public int wiggleMaxLength(int[] nums) {
if(nums.length <= 1) {//特殊情况处理,<2的情况统一处理
return nums.length;
}
int cur = 0;
int pre = 0;//默认造一个平波,易于与后面满足if条件更新数据的形式保持统一
int count = 1;//(默认,结尾必然存在一个波动,从1开始)
for (int i = 0; i < nums.length - 1; i++) {
cur = nums[i + 1] - nums[i];//注意需要根据前后的正负号及逆行判别
if (pre >= 0 && cur < 0 || pre <= 0 && cur > 0) {
count++;
pre = cur;//在if里面,保证了只有发生波动时才进行更新pre的值(主要关注其正负号)
}
}
return count;
}
}