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