給定一個數組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范圍內的波峰更高,則修改上一個波谷的值。 否則就將該波峰加入波峰列表。
最后返回波峰和波谷列表。