如果存在正整数num,则将数组称为特殊数组,以使该数组中存在大于num的num个元素。数字num不一定必须属于该数组,它应该存在。
例如-如果输入数组是-
const arr = [2, 1, 5, 2, 7, 9];
然后,如果我们进行了适当的检查,就会发现对于num = 3,此数组中恰好有3个元素大于3。
但是,3不是此数组的一部分,但这是有效的。因此,我们需要编写一个接受数字数组的JavaScript函数。
该函数应返回特殊的数字(如果完全特殊),否则该函数应返回-1。
const arr = [2, 1, 5, 2, 7, 9]; const findSpecialArray = (array = []) => { const arr = array.slice().sort((a, b) => a - b); let index = 1; const { length } = arr; while(index <= arr[length-1]){ let num = 0; for(let i=0; i<length; i++){ if(arr[i] >= index){ num++; } }; if(num === index){ return index; }; index++; }; return -1; }; console.log(findSpecialArray(arr));
输出结果
这将产生以下输出-
3