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

ผลรวมสูงสุดของ n องค์ประกอบต่อเนื่องของอาร์เรย์ใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลข เช่น arr เป็นอาร์กิวเมนต์แรกและตัวเลข เช่น num เป็นอาร์กิวเมนต์ที่สอง

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

ตัวอย่างเช่น −

หากอินพุตเป็น −

const arr = [2,5,3,4,6];
const num = 2

เอาต์พุตสำหรับอินพุตด้านบนควรมีลักษณะดังนี้ −

const output = 10

เพราะ 6 และ 4 เป็นสององค์ประกอบต่อเนื่องกันที่รวมกันมากที่สุด

เราสามารถแก้ปัญหานี้ได้ด้วยเทคนิคหน้าต่างบานเลื่อนในเวลาเชิงเส้นและวิธีแก้ปัญหาพื้นที่คงที่

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr = [2, 5, 3, 4, 6];
// helper function to find sum of an array
const findSum = arr => arr.reduce((acc, val) => acc + val);
const maximumSum = (arr = [], num = 1) => {
   let left = 0, right = left + num;
   let sum = findSum(arr.slice(left, right));
   for(; right <= arr.length; right++, left++){
      sum = Math.max(findSum(arr.slice(left, right)), sum);
   };
   return sum;
};
console.log(maximumSum(arr, 2));
console.log(maximumSum(arr, 3));

ผลลัพธ์

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

10
12