算法练习题--滑动窗口算法详细解析(上)(简单题) -- 适合面试和算法竞赛 -- 滑动!

本文参考:

灵茶山艾府

题单:分享丨【题单】滑动窗口(定长/不定长/多指针) - 力扣(LeetCode)

本文主要通过Leetcode平台和上面的题单来进一步提炼出一些有意思的,值得反复练习的题目

可以反复尝试和练习,不论是面试还是打算法竞赛,还是单纯的爱好,都有或多或少的帮助

滑动窗口算法原理详解文章可以看我的文章:

定长滑动窗口算法详细解释(带例题的详细解法)-CSDN博客

不定长滑动窗口算法详细解释(带例题的详细解法)-CSDN博客

本文讲解的题目(建议先尝试一下再看题解):

(题目后面的数字表示难度分,可以直接点击链接跳转到题目)

  • 567. 字符串的排列​​​​​​
  • 2090. 半径为 k 的子数组平均值 1358
  • 904. 水果成篮 1516
  • 2024. 考试的最大困扰度 1643

觉得文章写的好可以点个赞,下个星期争取更新中等题和困难题的题解,还有二分查找算法

最近codeforces比赛也挺多的,会有点忙

题一:

567. 字符串的排列 - 力扣(LeetCode)

题目大意和思路:

两个字符串,判断s2是否包含s1的排列

也就是说字符串s2中是否存在一段连续子字符串满足:

长度与s1相等,且所含有字母跟s1一样

可以维护一个长度等于s1的窗口来遍历s2

先统计开始窗口的字符

窗口开始滑动,维护出来的字符和进入的字符

统计字符数量可以用哈希表来处理

注意:如果使用哈希表处理,那么当窗口内某元素个数为0时候,要删除这个键

哈希表做法(Python):

class Solution:
   

你可能感兴趣的:(基础算法详解,python,开发语言,c++,leetcode,职场和发展,算法)