ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลข arr เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว
ฟังก์ชันของเราควรตรวจสอบว่าอาร์เรย์อินพุตเป็นอาร์เรย์พีคจากส่วนกลางหรือไม่ หากเป็นอาร์เรย์พีคจากศูนย์กลาง เราควรคืนค่า true ไม่เช่นนั้นจะคืนค่าเท็จ
เงื่อนไขในการเป็นอาร์เรย์พีคจากส่วนกลางคือ −
-
arr.length>=3
-
มีบางตัว i ที่มี 0
-
arr[0]
-
arr[i]> arr[i+1]> ...> arr[arr.length - 1]
-
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
const arr = [2, 6, 7, 9, 5, 3, 1];
จากนั้นผลลัพธ์ควรเป็น −
const output = true;
คำอธิบายผลลัพธ์
เพราะอาร์เรย์พีคที่ 9
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [2, 6, 7, 9, 5, 3, 1]; const isCentrallyPeaked = (arr = []) => { let ind = undefined; for (let i = 1; i <= arr.length - 1; i++) { if (ind === undefined) { if (arr[i] < arr[i - 1]) { ind = i - 1 } else if (arr[i] === arr[i - 1]) { return false } } else if (arr[i] >= arr[i - 1]) { return false } } return ind > 0 && ind < arr.length - 1 }; console.log(isCentrallyPeaked(arr));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
true