题目链接:https://leetcode-cn.com/problems/get-equal-substrings-within-budget/
滑动窗口自左向右遍历,每次sum加上右指针对应的开销,一旦sum > maxCost,就将左指针右移直到满足条件。每次都更新最大值。
代码如下:
class Solution {
public:
int equalSubstring(string s, string t, int maxCost) {
int l = 0, r = 0, sum = 0, res = 0;
while(r < s.size()) {
sum += abs(s[r] - t[r]);
r++;
while(sum > maxCost) {
sum -= abs(s[l] - t[l]);
l++;
}
res = max(res, r - l);
}
return res;
}
};