问题
在如下图所示包含一些噪声的数据队列中如何可以把绿色的(有一个点图片上忘记标了)几个主观认为的最大值最小值筛选出来
思路
简述:定义一个噪声阈值,如果当前比上一次超过噪声阈值才进行更新,如果当前比上一次的变化没超过噪声值记录下来,等到需要更新的时候再进行替换。
状态变量:status
{ − 1 = 处于下降趋势中 0 = 相等情况 1 = 处于上升 v 趋势中 \left\{ \begin{array}{l} -1 = 处于下降趋势中\\ 0 =相等情况\\ 1 = 处于上升v趋势中 \\ \end{array} \right. ⎩
⎨
⎧−1=处于下降趋势中0=相等情况1=处于上升v趋势中
处理逻辑:
{ 队列为空:直接放进去第一个数据 不为空且增量大于更新阈值 { s t a t u s = 0 直接放进去并标记趋势 s t a t u s = 1 说明一直处于增量序列中直接替换尾部最大值并更新上一时刻保存量 s t a t u s