[LeetCode] Maximum Average Subarray I

아르당·2026년 2월 10일

LeetCode

목록 보기
142/213
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

n개의 요소를 가진 정수 배열 nums와 정수 k가 주어진다.

길이가 k인 연속된 부분 배열 중에서 평균값이 최대인 부분 배열을 찾아 그 값을 반환해라. 계산 오차가 10^-5미만인 답은 모두 유효하다.

Example

#1
Input: nums = [1, 12, -5, -6, 50, 3], k = 4
Output: 12.75000
Explanation: 가장 큰 평균값은 (12 - 5 - 6 + 50) / 4 = 51 / 4 = 12.75이다.

#2
Input: nums = [5], k = 1
Output: 5.00000

Constraints

  • n == nums.length
  • 1 <= k <= n <= 10^5
  • -10^4 <= nums[i] <= 10^4

Solved

class Solution {
    public double findMaxAverage(int[] nums, int k) {
        int sum = 0;

        for(int i = 0; i < k; i++) sum += nums[i];

        int maxSum = sum;

        for(int i = k; i < nums.length; i++){
            sum += nums[i] - nums[i - k];
            maxSum = Math.max(maxSum, sum);
        }

        return (double) maxSum / k;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글