class Solution {
public int maxConsecutiveAnswers(String answerKey, int k) {
int n = answerKey.length();
int l = 1,r = 50000;
while(l < r ){
int mid = (l+r+1)/2;
if(check(mid,answerKey,k)){
l = mid;
}else{
r = mid-1;
}
}
return l;
}
public boolean check(int x,String answerKey,int k){
int cnt = 0;
if(x > answerKey.length()){
return false;
}
for(int i = 0;i<x;i++){
if(answerKey.charAt(i) == 'T'){
cnt++;
}
}
if(cnt <= k || x-cnt <= k){
return true;
}
for(int i = x;i<answerKey.length();i++){
cnt -= (answerKey.charAt(i-x)=='T' ? 1 : 0);
cnt += (answerKey.charAt(i)=='T' ? 1 : 0);
if(cnt <= k || x-cnt <= k){
return true;
}
}
return false;
}
}
LeetCode 2024. 考试的最大困扰度——Java(二分)
最大连续答案优化
最新推荐文章于 2025-12-02 21:20:38 发布
本文介绍了一个算法问题的解决方案,该问题旨在找出字符串中通过替换最多k个字符可以获得的最大连续相同字符序列长度。采用二分查找结合滑动窗口的方法进行优化求解。
704

被折叠的 条评论
为什么被折叠?



