Category: two-pointer-algorithm

Maximum length of consecutive 1s or 0s after flipping at most K characters

#include using namespace std;  int maxLength(string str, int n,              char c, int k){        int ans = -1;          int cnt = 0;          int left = 0;      for (int right = 0; right < n; right++) {          if (str[right] == c) {            cnt++;        }                  while (cnt > k) {            if (str[left] == c) {                cnt–;            }                                      left++;        }                          ans = max(ans, right – left + 1);    }      return ans;}  int maxConsecutiveSegment(string S, int K){    int N = […]

Continue Reading

Maximum frequency of any array element possible by exactly K increments

  #include using namespace std;  void findMostFrequent(int arr[], int N,                      int K){    int start = 0, end = 0;          sort(arr, arr + N);              int mostFreq = INT_MIN, sum = 0;          for (end = 0; end < N; end++) {                          sum = sum + arr[end];                  while (sum + K < arr[end] * (end - start + 1)) {                                      sum = sum - arr[start];                                      start++;        }                  mostFreq = max(mostFreq,                       end - […]

Continue Reading

Count number of substrings having at least K distinct characters

Count number of substrings having at least K distinct characters Given a string S consisting of N characters and a positive integer K, the task is to count the number of substrings having at least K distinct characters.Examples:Input: S = “abcca”, K = 3Output: 4Explanation:The substrings that contain at least K(= 3) distinct characters are:“abc”: […]

Continue Reading

Minimize replacements with values up to K to make sum of two given arrays equal

import java.util.*;    class GFG {                       public static int makeSumEqual(         int[] a, int[] b, int K,         int M, int N)     {                  int sum1 = 0;                     int sum2 = 0;                     for (int el : a)             sum1 += el;                     for (int el : b)             sum2 += […]

Continue Reading