leetcode1208滑动窗口模板题

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
(说得简单二分从来写不对,,,,)

posted @ 2021-02-05 11:17  安之若醇  阅读(48)  评论(0编辑  收藏  举报
Live2D服务支持