Today's problem is same as yesterday's and many last few problems.
Hence, not making video today.
REFERENCE CODE:-
class Solution {
#define ll long long
public:
long long countSubarrays(vector<int>& nums, int k) {
ll valid_subarrays = 0;
int win_count = 0;
int left = 0,right = 0;
int maximum = *max_element(nums.begin(), nums.end());
int n = nums.size();
while(left<n){
while(right<n and win_count<k){
if(nums[right]==maximum)
win_count++;
right++;
}
if(win_count==k)
valid_subarrays += n-right+1;
if(nums[left]==maximum)
win_count--;
left++;
}
return valid_subarrays;
}
};
Hence, not making video today.
REFERENCE CODE:-
class Solution {
#define ll long long
public:
long long countSubarrays(vector<int>& nums, int k) {
ll valid_subarrays = 0;
int win_count = 0;
int left = 0,right = 0;
int maximum = *max_element(nums.begin(), nums.end());
int n = nums.size();
while(left<n){
while(right<n and win_count<k){
if(nums[right]==maximum)
win_count++;
right++;
}
if(win_count==k)
valid_subarrays += n-right+1;
if(nums[left]==maximum)
win_count--;
left++;
}
return valid_subarrays;
}
};