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

ค่าเฉลี่ยสูงสุดของความยาวเฉพาะของ subarray ใน JavaScript


ปัญหา

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

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

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ

ป้อนข้อมูล

const arr = [1, 12, -5, -6, 50, 3];
const num = 4;

ผลผลิต

const output = 12.75;

คำอธิบายผลลัพธ์

เนื่องจากอาร์เรย์ย่อยที่ต้องการคือ [12, -5, -6, 50]

ตัวอย่าง

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

const arr = [1, 12, -5, -6, 50, 3];
const num = 4;
const maxAverage = (arr = [], num) => {
   let sum = arr.slice(0, num).reduce((acc, v) => acc + v, 0)
   let max = sum
   for (let i = 1; i <= arr.length - num; i++) {
      sum = sum + arr[i + num - 1] - arr[i - 1]
      max = Math.max(max, sum)
   }
   return max / num
}
console.log(maxAverage(arr, num));

ผลลัพธ์

12.75