https://leetcode.com/problems/maximum-average-subarray-i/description
Q. 연속된 sub array의 길이가 k 인 것중 그 평균값이 가장 큰 값을 찾아라.
Solution.
Sliding window 유형의 가장 기본 적인 문제. 다만 함정이라면, 결과로 return할 double type의 최소값을 설정하는 방법. int 하고는 약간 달랐다.
double findMaxAverage(vector<int>& nums, int k)
{
// double의 positive일때 최대, 최소값이 DBL_MIN, MAX다.
// 이를 이용해 구간전체 최소값으로 최기화가 필요하다.
double ret = -DBL_MAX;
int sum = 0;
int left = 0;
for (int right = 0; right < nums.size(); ++right)
{
sum += nums[right];
if (right - left + 1 == k)
{
ret = max(ret, ((double)sum) / ((double)k));
sum -= nums[left++];
}
}
return ret;
}
'Leetcode > LeetCode75' 카테고리의 다른 글
[Sliding Window][Medium] 1004. Max Consecutive Ones III (2) | 2023.12.05 |
---|---|
[Sliding Window][Medium] 1456. Maximum Number of Vowels in a Substring of Given Length (1) | 2023.12.05 |
[Two Pointers][Medium] 1679. Max Number of K-Sum Pairs (0) | 2023.12.02 |
[Two Pointers][Medium] 11. Container With Most Water (1) | 2023.12.01 |
[Two Pointers][Easy] 392. Is Subsequence (2) | 2023.12.01 |