Maximum Average Subarray I - LeetCode
길이가 n인 정수 배열 nums와 정수 k가 주어집니다.
길이가 k인 연속적인 부분 배열을 찾아 해당 부분 배열의 평균값이 최대인 값을 반환하세요. 계산 오차가 10^-5 미만인 어떤 답도 허용됩니다.
You are given an integer array nums consisting of n elements, and an integer k.
Find a contiguous subarray whose length is equal to k that has the maximum average value and return this value. Any answer with a calculation error less than 10-5 will be accepted.
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
문제 요약:
길이가 k인 연속 부분 배열을 찾아 평균값이 최대인 값을 찾는 문제입니다.
풀이과정:
주어진 배열 nums를 순회하면서 길이가 k인 연속 부분 배열의 평균값을 구해야 합니다. 이를 위해 다음과 같은 절차를 따릅니다:
class Solution {
public double findMaxAverage(int[] nums, int k) {
int maxSum = Integer.MIN_VALUE;
if(nums.length == 1){
maxSum = nums[0];
}else{
int beforeSum = 0;
for(int i = 0; i < nums.length; i++){
beforeSum += nums[i];
if(i + 1 >= k){
maxSum = Math.max(maxSum, beforeSum);
beforeSum -= nums[i + 1 - k];
}
}
}
return (double) maxSum / k;
}
}
1004. Max Consecutive Ones III (0) | 2023.11.06 |
---|---|
1456. Maximum Number of Vowels in a Substring of Given Length (0) | 2023.11.02 |
1679. Max Number of K-Sum Pairs (0) | 2023.11.02 |
11. Container With Most Water (0) | 2023.11.02 |
1431. Kids With the Greatest Number of Candies (0) | 2023.11.01 |