波峰波谷的判断

给定一个数组h, 从左往右扫描。 

用S记录当前的状态(未知0, 下坡1,上坡2) 

当S=0, 如果 h[i] >  h[i+1]  修改状态为 下坡1, 否则为上坡 2 

当S=1, 如果 h[i]  <  h[i+1], 则判断为由下坡变为上坡, 此处为一个波谷。 如果该波谷比上一个rangesize范围内的波谷更低,则修改上一个波谷的值。 否则就将该波谷加入波谷列表。 

当S=2, 如果 h[i]  > h[i+1], 则判断为由上坡变为下坡, 此处为一个波峰。 如果该波峰比上一个rangesize范围内的波峰更高,则修改上一个波谷的值。 否则就将该波峰加入波峰列表。 

最后返回波峰和波谷列表。 

原文地址:https://www.cnblogs.com/h2zZhou/p/12844044.html