Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

กำลังตรวจสอบอาร์เรย์พีคจากส่วนกลางใน JavaScript


ปัญหา

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