https://leetcode-cn.com/problems/get-equal-substrings-within-budget/
滑动窗口模板题
class Solution {
public:
int equalSubstring(string s, string t, int maxCost) {
int n = s.length();
vector<int> diff(n, 0);
for (int i = 0; i < n; i++) {
diff[i] = abs(s[i] - t[i]);
}
int maxLength = 0;
int start = 0, end = 0;
int sum = 0;
while (end < n) {
sum += diff[end];
while (sum > maxCost) {
sum -= diff[start];
start++;
}
maxLength = max(maxLength, end - start + 1);
end++;
}
return maxLength;
}
};
题解还有一个是前缀和+二分的
就是先举出所有的前缀和,然后枚举x,二分找start
(说得简单二分从来写不对,,,,)