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(二分)
最新推荐文章于 2024-10-05 12:07:50 发布