本文主要是介绍[M滑动窗口] lc2024. 考试的最大困扰度(滑动窗口+问题转换),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1. 题目来源
- 2. 题目解析
1. 题目来源
链接:2024. 考试的最大困扰度
前置题:
- [M滑动窗口] lc1004. 最大连续1的个数 III(滑动窗口+模板题)
题单:
-
- 滑动窗口(定长/不定长/多指针)
- 二、不定长滑动窗口
- §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'));}
};
这篇关于[M滑动窗口] lc2024. 考试的最大困扰度(滑动窗口+问题转换)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!