滑动窗口

题目特点 要求找到满足某些条件的子序列 比如最长 最短 等

滑动窗口思路(寻找最长)

核心:左右指针(L R)在起始点,R向右逐位滑动循环 

每次滑动过程中

如果窗内元素满足条件,R向右扩大窗口,并更新最优结果。

如果窗内元素不满足条件,L向右缩小窗口

-----R到达结尾

 

滑动窗口思路(寻找最短)

核心:左右指针(L R)在起始点,R向右逐位滑动循环 

每次滑动过程中

如果窗内元素满足条件,L向右缩小窗口,并更新最优结果。

如果窗内元素不满足条件,R向右扩大窗口

-----R到达结尾

 

 

解题模板

最长:

初始化left,right,result,bestResult

while(右指针没有到结尾){

  窗口扩大,加入right对应元素,更新当前result

  while(result不满足要求){

     窗口缩小,移除left对应元素,left右移

}

  更新最优结果bestResult

  right++

}

 

 

最短:

初始化left,right,result,bestResult

while(右指针没有到结尾){

  窗口扩大,加入right对应元素,更新当前result

  while(result满足要求){

     更新最优结果bestResult

     窗口缩小,移除left对应元素,left右移

}

  right++

}

posted on 2023-08-29 10:41  啥123  阅读(40)  评论(0编辑  收藏  举报