1. 题目来源
前置题:
题单:
-
- 滑动窗口(定长/不定长/多指针)
- 二、不定长滑动窗口
- §2.1 求最长/最大
2. 题目解析
思路:
- 简单的问题转换,就变成了 [M滑动窗口] lc1004. 最大连续1的个数 III(滑动窗口+模板题)
。内容一模一样,不赘述,仅记录。
- 时间复杂度: O ( n ) O(n) O(n)
- 空间复杂度: O ( 1 ) O(1) O(1)
class Solution {
public:
int maxConsecutiveAnswers(string answerKey, int k) {
int n = answerKey.size();
auto get = [&](char c) {
int l = 0, r = 0, cntc = 0;
int res = 0;
while (r < n) {
cntc += answerKey[r] == c;
while (cntc > k) {
if (answerKey[l] == c) cntc -- ;
l ++ ;
}
res = max(res, r - l + 1);
r ++ ;
}
return res;
};
return max(get('T'), get('F'));
}
};