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

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;
}
}
浙公网安备 33010602011771号