• LeetCode滑动窗口专题(刷题记录)


    一、滑动窗口伪代码
    二、滑动窗口经典题目
    01.643. 子数组最大平均数 I
    02.209. 长度最小的子数组
    03.3. 无重复字符的最长子串
    04.76. 最小覆盖子串(难)
    05.485. 最大连续 1 的个数
    06.487. 最大连续1的个数 II
    07.1004. 最大连续1的个数 III
    08.1151. 最少交换次数来组合所有的 1
    09.30. 串联所有单词的子串(难)
    10.567. 字符串的排列
    11.763. 划分字母区间
    12.845. 数组中的最长山脉(难)
    13.159. 至多包含两个不同字符的最长子串
    14.187. 重复的DNA序列
    15.340. 至多包含 K 个不同字符的最长子串
    16.424. 替换后的最长重复字符
    17.713. 乘积小于K的子数组
    18.904. 水果成篮
    19.1100. 长度为 K 的无重复字符子串
    20.1176. 健身计划评估
    21.1208. 尽可能使字符串相等
    22.1234. 替换子串得到平衡字符串
    总结

    模板:

    int left = 0 , right = 0;
    while(right < nums.length()){
    	//处理right指向的元素,加入到窗口
    	while(窗口满足条件){//也有可能是if来判断一次即可
    		//计算结果
    		//处理left指向的元素,将其从窗口中剔除掉
    		left++;
    	}
    	
    	right++;
    }
    

    01.643. 子数组最大平均数 I

    //时间:o(n)
    //空间:o(n)
    class Solution {
        public double findMaxAverage(int[] nums, int k) {
            //窗口左边界   
            int left = 0;
            //窗口右边界
            int right = 0;
            //大小为k的窗口的累加和(动态变化的)
            int currWindowSum = 0;
            //维护最大值
            int maxSum = Integer.MIN_VALUE;
            //右边界
            while(right < nums.length){
                //处理右边的指针
                currWindowSum += nums[right];
                //满足窗口的条件,达到了固定窗口的大小,处理左边的指针
                if(right - left + 1 == k){
                    maxSum = Math.max(maxSum,currWindowSum);
                    //currWindowSum要先减掉num[left],然后left右移
                    currWindowSum -= nums[left++];
                }
                //如果没有达到窗口的大小:只有right右移
                //如果达到窗口的大小了:left和right一起右移一个单位
                right++;
            }
            
            //注意返回类型是 double
            return (double)maxSum / k;
        }
    }
    

      

    加油啦!加油鸭,冲鸭!!!
  • 相关阅读:
    【论文笔记】迁移自适应学习综述
    David Silver强化学习Lecture3:动态规划
    David Silver强化学习Lecture2:马尔可夫决策过程
    David Silver强化学习Lecture1:强化学习简介
    【论文笔记】深度人脸识别综述
    《构建之法》读书笔记
    个人作业——软件工程实践总结
    个人作业——关于K米的产品案例分析
    Hibernate简单增删改查
    Intellij IDEA中的Hibernate配置(MySQL8.0+Hibernate5.4.11)
  • 原文地址:https://www.cnblogs.com/clarencezzh/p/15505816.html
Copyright © 2020-2023  润新知