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