不定长滑动窗口思路

不定长滑动窗口求最长的解题思路其实可以将问题结构拆解为
求遍历过程中每一个位置在满足题目条件情况下的解,将问题结构化之后从简单情况出发,遵循最小化原则()
这是核心,也是解题思路的起点

接下来才是思考逻辑,用双指针去维护满足条件的窗口

以这道题为例:

image

Java实现如下:

class Solution {
    public int equalSubstring(String s, String t, int maxCost) {
        int n = s.length();
        int[] cost = new int[n];
        for(int i = 0;i<n;i++){
            cost[i] = Math.abs(s.charAt(i)-t.charAt(i));
        }
        int ans = 0;
        int left = 0;
        int sum = 0;
        for(int right = 0;right<n;right++){
            sum+=cost[right];
            while(sum>maxCost){
                sum-=cost[left];
                left++;
            }
            ans = Math.max(ans,right-left+1);
        }
        return ans;
    }
}
posted @ 2026-06-03 12:58  ZealousMclaren  阅读(6)  评论(0)    收藏  举报