滑动窗口
套滑动窗口模板,总体思路是右指针向前探索,不满足要求的时候左指针前进,直到符合要求,重复上述过程,在这个过程中一直更新满足要求的最大值。
class Solution {
public int equalSubstring(String s, String t, int maxCost) {
int left = 0, right = 0;
int N = s.length();
int[] diff = new int[N];
for (int i = 0; i < N; ++i) {
diff[i] = Math.abs(s.charAt(i) - t.charAt(i));
}
int result = 0, sum = 0;
while (right < N) {
sum += diff[right];
while (sum > maxCost) {
sum -= diff[left];
left++;
}
result = Math.max(result, right - left + 1);
right++;
}
return result;
}
}