ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน 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