num2024. 考试的最大困扰度 思路: 第一时间感觉很像滑动窗口的思路,就是直觉,感觉没什么道理那怎样确认窗口的长度呢只改变K次,就可以求到最大连续的T或者F,那就只要求出窗口里相较少的字符个数,并保证他的个数等于K的时候窗口的最大长度就可以了用i,j来控制窗口的长度,如果窗口里较少字符的个数大于K,i++,判断原来i位置上的是T还是F,然后把它的个数减1,最后在每一次循环中维护窗口长度的最大值就可以了时间复杂度O(n) class Solution { public: int maxConsecutiveAnswers(string answerKey, int k) { int cntT = 0, cntF = 0; int NeedChanged = 0; int len = answerKey.length(); int i = 0; int ans = 1; for(int j = 0; j < len; j++){ if(answerKey[j] == 'T') cntT++; else cntF++; NeedChanged = min(cntT, cntF); while(NeedChanged > k){ if(answerKey[i] == 'T') cntT--; else cntF--; i++; NeedChanged = min(cntT, cntF); } ans = max(ans, j - i + 1); } return ans; } };