Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

คู่ขององค์ประกอบติดกันที่ผลรวมน้อยที่สุด - JavaScript

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลข ฟังก์ชันควรคืนค่าซับอาร์เรย์ของสององค์ประกอบติดกันจากอาร์เรย์เดิมที่ผลรวมของพวกเขาน้อยที่สุด среди ทุกคู่ติดกันของอาร์เรย์

ถ้าความยาวของอาร์เรย์น้อยกว่า 2 เราควรคืนค่า boolean false

ตัวเช่น ถ้าอาร์เรย์อินพุตคือ:

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]