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

คู่ขององค์ประกอบ (ที่อยู่ติดกัน) ของอาร์เรย์ที่มีผลรวมคือ JavaScript ต่ำสุด


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของตัวเลข ฟังก์ชั่นควรส่งคืนอาร์เรย์ย่อยของสององค์ประกอบที่อยู่ติดกันจากอาร์เรย์ดั้งเดิมซึ่งมีผลรวมน้อยที่สุดในบรรดาคู่ของอาร์เรย์ที่อยู่ติดกันทั้งหมด

หากความยาวของอาร์เรย์น้อยกว่า 2 เราควรคืนค่าบูลีนเป็นเท็จ

ตัวอย่างเช่น หากอาร์เรย์อินพุตเป็น −

const arr = [41, 44, -12, 13, -23, 1, 5, -4, 2, 2];

ในที่นี้ ผลรวมของคู่ [-23, 1] คือ -22 ซึ่งน้อยที่สุดสำหรับสององค์ประกอบที่อยู่ติดกันของอาร์เรย์ ดังนั้นฟังก์ชันควรส่งคืน [-23, 1]

รหัสสำหรับสิ่งนี้จะเป็น −

const arr = [41, 44, -12, 13, -23, 1, 5, -4, 2, 2];
const leastSum = arr => {
   if(arr.length <= 2){
      return false;
   };
   const creds = arr.reduce((acc, val, ind) => {
      let { smallest, startIndex } = acc;
      const next = arr[ind+1] ;
      if(!next){
         return acc;
      }
      const sum = val + next;
      if(sum < smallest){
         startIndex = ind;
         smallest = sum;
      };
      return { startIndex, smallest };
   }, {
      smallest: Infinity,
      startIndex: -1
   });
   const { startIndex } = creds;
   return [arr[startIndex], arr[startIndex + 1]];
};
console.log(leastSum(arr));

ต่อไปนี้เป็นผลลัพธ์บนคอนโซล -

[-23, 1]