อาร์เรย์ถูกกล่าวว่าเป็นอาร์เรย์พิเศษ หากมีจำนวนเต็มบวก 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= index){
num++;
}
};
if(num === index){ return index; };
index++;
};
return -1;
};
console.log(findSpecialArray(arr));
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ดังนี้:
3