为了账号安全,请及时绑定邮箱和手机立即绑定

怎么找出趋势递减数列(并非绝对递减)中的异常元素?

怎么找出趋势递减数列(并非绝对递减)中的异常元素?

互换的青春 2019-07-26 23:58:16
给出一个趋势递减数列,找出其中的异常元素数列在整体大的趋势上是递减,但是存在后一个元素比前一个元素稍大一点的情况(算作正常)数列中存在连续的N个异常元素,第一个异常元素前面附近元素和最后一个异常元素后面附近元素均远小于该N个异常元素的最小值对于上述描述中的稍大,附近元素,远小于等词汇,如需精确数值,请自行定义例如50,51,45,40,200,39,30,20中的200例如50,52,40,40,150,160,150,41,38中的150,160,150例如652,638,642,1829,1829,1829,1829,1829,639,587,577,550中的5个1829
查看完整描述

2 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

这个其实很简单的,写个循环就找出来了嘛。
functionfindAscElement(list){
letnormalIndex//保存最后正常的索引
letresult=[]
for(letidxinlist){
if(idx==0){
normalIndex=idx
continue
}
//遍历与最后正常的索引值对比
if(list[idx]>list[normalIndex]){
result.push(idx)
}else{
normalIndex=idx
}
}
returnresult
}
letlist=[100,99,90,91,92,89,11]
console.log(findAscElement(list))
                            
查看完整回答
反对 回复 2019-07-26
?
MYYA

TA贡献1868条经验 获得超4个赞

主要是定义一下容忍度,就是递减趋势中,允许多大范围的跳变,后面比前面的大的范围,1倍还是2倍以内,还是比数列前一个不能大于百位,或千位,或是不能超过目前数列出现的最大值,比如第一个元素为参考,定义好这个容忍度判断,就比较容易了
                            
查看完整回答
反对 回复 2019-07-26
  • 2 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信