[LeetCode] 643. Maximum Average Subarray I

Chobby·2025년 4월 25일
1

LeetCode

목록 보기
375/427

🧐풀이

  1. nums 순회
    1-1. 만약, k길이의 요소가 모였다면 현재 합과 최대 합을 비교하여 갱신하고, 가장 먼저 누산되었던 요소를 합에서 제거
    1-2. 현재 요소를 합에 누산
  2. 최종적인 합과 최대 합을 비교하여 더 큰 값을 maxSum에 할당
  3. 최대합에 평균을 구하여 반환
function findMaxAverage(nums: number[], k: number): number {
    const n = nums.length
    let maxSum = -Infinity
    let curSum = 0
    for(let i = 0; i < n; i++) {
        if(i >= k) {
            maxSum = Math.max(maxSum, curSum)
            curSum -= nums[i - k]
        }
        curSum += nums[i]
    }
    maxSum = Math.max(maxSum, curSum)
    return maxSum / k
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글