# LC 2379. Minimum Recolors to Get K Consecutive Black Blocks
### [Problem link](https://leetcode.com/problems/minimum-recolors-to-get-k-consecutive-black-blocks/)
###### tags: `leedcode` `easy` `c++` `Sliding Window`
You are given a **0-indexed** string <code>blocks</code> of length <code>n</code>, where <code>blocks[i]</code> is either <code>'W'</code> or <code>'B'</code>, representing the color of the <code>i<sup>th</sup></code> block. The characters <code>'W'</code> and <code>'B'</code> denote the colors white and black, respectively.
You are also given an integer <code>k</code>, which is the desired number of **consecutive** black blocks.
In one operation, you can **recolor** a white block such that it becomes a black block.
Return the **minimum** number of operations needed such that there is at least **one** occurrence of <code>k</code> consecutive black blocks.
**Example 1:**
```
Input: blocks = "WBBWWBBWBW", k = 7
Output: 3
Explanation:
One way to achieve 7 consecutive black blocks is to recolor the 0th, 3rd, and 4th blocks
so that blocks = "BBBBBBBWBW".
It can be shown that there is no way to achieve 7 consecutive black blocks in less than 3 operations.
Therefore, we return 3.
```
**Example 2:**
```
Input: blocks = "WBWBBBW", k = 2
Output: 0
Explanation:
No changes need to be made, since 2 consecutive black blocks already exist.
Therefore, we return 0.
```
**Constraints:**
- <code>n == blocks.length</code>
- <code>1 <= n <= 100</code>
- <code>blocks[i]</code> is either <code>'W'</code> or <code>'B'</code>.
- <code>1 <= k <= n</code>
## Solution 1
#### C++
```cpp=
class Solution {
public:
int minimumRecolors(string blocks, int k) {
int ans = INT_MAX;
int cnt = 0;
for (int i = 0; i < blocks.size(); i++) {
if (blocks[i] == 'W') {
cnt++;
}
if (i < k - 1) {
continue;
}
ans = min(ans, cnt);
if (blocks[i - k + 1] == 'W') {
cnt--;
}
}
return ans;
}
};
```
>### Complexity
>| | Time Complexity | Space Complexity |
>| ----------- | --------------- | ---------------- |
>| Solution 1 | O(n) | O(1) |
## Note
x