给出一个趋势递减数列,找出其中的异常元素数列在整体大的趋势上是递减,但是存在后一个元素比前一个元素稍大一点的情况(算作正常)数列中存在连续的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=idxcontinue}//遍历与最后正常的索引值对比if(list[idx]>list[normalIndex]){result.push(idx)}else{normalIndex=idx}}returnresult}letlist=[100,99,90,91,92,89,11]console.log(findAscElement(list))
MYYA
TA贡献1868条经验 获得超4个赞
主要是定义一下容忍度,就是递减趋势中,允许多大范围的跳变,后面比前面的大的范围,1倍还是2倍以内,还是比数列前一个不能大于百位,或千位,或是不能超过目前数列出现的最大值,比如第一个元素为参考,定义好这个容忍度判断,就比较容易了
添加回答
举报
0/150
提交
取消