滑动窗口
套滑动窗口模板,总体思路是右指针向前探索,不满足要求的时候左指针前进,直到符合要求,重复上述过程,在这个过程中一直更新满足要求的最大值。
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;
}
}
本文介绍了如何利用滑动窗口模板解决字符串处理问题,具体为在最大成本限制下找到最长相等子串。通过右指针探索并更新窗口内字符差异总和,当超过最大成本时,左指针前移。该方法在字符串算法中有着广泛的应用。

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



