滑动窗口思想适用于:最长,最短 场景
其核心思想如下:
1)寻求最长
——左右指针(L,R)在起点,R向右逐步滑动
——每次滑动过程中
——如果窗口内的值满足条件,R向右扩大窗口,并更新最优结果
如果不满足条件,L向右缩小窗口
——R到达结尾
2)寻求最短
——左右指针(L,R)在起点,R向右逐步滑动
——每次滑动过程中
——如果窗口内的值满足条件,L向右缩小窗口,更新最优结果
如果不满足条件,R向右扩大窗口
寻求最长思路:
int left =0, right = 0, curResult, bestResult = 0; while(右指针没有到达结尾){ 窗口扩大,加入right对应的元素,获取当前结果 if(当前结果 优于 最优结果){ bestResult = curResult; }else{ 当前结果 移除 left所在元素 窗口缩小,left++; } right++; }
寻找最短思路:
int left =0, right = 0, curResult, bestResult = 0;
while(右指针没有到达结尾){
窗口扩大,加入right对应的元素,获取当前结果
if(当前结果 优于最优结果){
bestResult = curResult;
窗口缩小,left++
}else{
窗口扩大,right++
}
}
标签:right,窗口,bestResult,++,滑动,left From: https://www.cnblogs.com/whutwxj/p/17676598.html