扣除376题(挥杆顺序)。
376、摆动序列
基本思想:
贪婪算法
具体实现:
PreDiff存储最后一个差异。
CurDiff存储当前差异。
只要一个正一个负,就执行计数。
但是preDiff初始化为0,无论如何,都不会有正负之比。
因此,比较条件为:
if((curdiff 0 prediff=0)| |(curdiff 0 prediff=0))
比较预测时需要等号。
数组的长度是2,
例如,[2,5],摆动序列的最大子序列数应该返回2。
计数被初始化为1。
此时,柯迪夫0预测值=0,
数数,
最后的计数是2。
[4,5,5,4]
返回3,
代码:
解决方案类{
public int WiggleMaxLength(int[]nums){ 0
if(nums==null | | nums . length=1){ 0
返回nums.length
}
//当前差异。
int CodeDiff=0;
//最后一个区别。
int preDiff=0;
int count=1;
for(int I=1;i nums.lengthI){ 0
//获取当前差值。
curDiff=nums[I]-nums[I-1];
//如果当前差值和以前的差值为正和负。
//等于0时,表示开头的preDiff。
if((CodeDiff 0 preDiff=0)| |(CodeDiff 0 preDiff=0)){ 0
计数;
preDiff=curDiff
}
}
返回计数;
}
}
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/37486.html