# 643. Maximum Average Subarray I ## 題目概要 給定一個整數陣列 nums 和一個正整數 k,找出一個連續的且長度為 k 的子陣列,這個子陣列所有元素相加取平均數為最大。 ``` Example 1: Input: nums = [1,12,-5,-6,50,3], k = 4 Output: 12.75000 Explanation: Maximum average is (12 - 5 - 6 + 50) / 4 = 51 / 4 = 12.75 Example 2: Input: nums = [5], k = 1 Output: 5.00000 ``` ## 解題技巧 - 先求 1 ~ k 的總和,再慢慢一個一個往後加,每往 k 之後加一個數就將總和減去陣列第 `i - (k - 1)` 的數。 ## 程式碼 ```javascript= /** * @param {number[]} nums * @param {number} k * @return {number} */ var findMaxAverage = function(nums, k) { let max = -Infinity; let sum = 0; for (let i = 0; i < nums.length; i++) { sum += nums[i]; if (i >= k - 1) { max = Math.max(sum, max); sum -= nums[i - (k - 1)]; } } return max / k; }; ``` ![](https://i.imgur.com/dxOm83L.png)