LeetCode #2962

Count Subarrays Where Max Element Appears at Least K Times

1개의 풀이 · C++

문제 원문 보기 ↗

SOLUTION INFO

C++ · main.cpp

main.cpp
class Solution {
public:
    long long countSubarrays(vector<int>& nums, int k) {
        long long ans = 0;
        int N = (int)nums.size(), mx = *max_element(nums.begin(), nums.end());
        int l = 0, r = 0, cnt = 0;
        while(r < N) {
            if(nums[r] == mx) ++ cnt;
            while(cnt >= k) {
                if(nums[l] == mx) -- cnt;
                ++ l;
                ans += N - r;
            }
            ++ r;
        }
        return ans;
    }
};

SOLUTION DESCRIPTION

풀이 설명

등록된 풀이 설명이 없습니다.