算法模板之滑动窗口 python

模板理解

left=0
right=0
window=collections.defaultdict(int)
need=collections.defaultdict(int)
valid=0
minlen=float('inf')
maxlen=0
while(right<len(s)):
    c=s[right]
    right+=1
    #根据问题更新窗口window 有效值valid

    
    #根据问题写 收缩窗口的条件 比如valid==len(need) 或者window[c]>1
    while():
        #一般在这会写满足返回条件的代码 比如更新minlen maxlen
        #
        if():
           
 
        d=s[left]
        left+=1
        #根据问题更新窗口window 有效值valid
    

    #有时候是在这里来写满足返回条件的代码 比如更新minlen maxlen
    if():
    

#看需要返回啥 简单点一般只需要返回minlen maxlen 难点需要返回子串 根据情况更新保存相关的数据
return  

力扣 76 最小覆盖字串 https://leetcode-cn.com/problems/minimum-window-substring/

 

力扣 567 字符串的排列 https://leetcode-cn.com/problems/permutation-in-string/submissions/

力扣 438 找到字符串中所有字母异位词 https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/submissions/

力扣 3 无重复字符的最长子串 https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/submissions/

力扣209 长度最小的子数组  https://leetcode-cn.com/problems/minimum-size-subarray-sum/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值