滑动窗口

将嵌套的循环转换为单循环问题,降低时间复杂度为O(n)

识别关键字

  1. 连续的元素,比如string, subarray, LinkedList
  2. min, max, longest, shortest, key word

模板

void slidingWindow(String s, String t){Map<Character, Integer> need = new HashMap<>();Map<Character, Integer> window = new HashMap<>();for(char c : t.toCharArray()){need.put(c, need.getOrDefault(c, 0)+1);}int left = 0, right = 0;int valid = 0;while (right < s.length()){// c is the character that will be moved into the windowchar c = s.charAt(right);// Move window rightright++;// Update data of the windowif (need.containsKey(c)){window.put(c, window.getOrDefault(c, 0)+1);}while(the left window needs to be moved right){// d is the character that will be moved out of the windowchar d = s.charAt(left);left++;if (need.containsKey(d)){window.put(d, window.get(d)-1);}}}}

两种方式用来存储窗口数据:

//arrayint[] array = new int[26];for (char c: s.toCharArray()) {array[c - 'a']++;}
//hashmapMap<Character, Integer> map = new HashMap<>();for (char c: s.toCharArray()) {map.put(c, map.getOrDefault(c, 0)+1);}

滑动窗口 Sliding Window相关推荐

  1. 详解--单调队列 经典滑动窗口问题

    单调队列,即单调的队列.使用频率不高,但在有些程序中会有非同寻常的作用. 动态规划·单调队列的理解 做动态规划时常常会见到形如这样的转移方程: f[x] = max or min{g(k) | b[x ...

  2. 算法与数据结构(一):滑动窗口法总结

    滑窗法在算法题中大量应用,其思想简洁强大,但是往往在维护左右指针时候容易出错,现总结整理如下: 1. 介绍 滑动窗口法,也叫尺取法(可能也不一定相等,大概就是这样 =.=),可以用来解决一些查找满足一 ...

  3. 滑动窗口相关概念和习题集

    概念 "滑动窗口"(sliding window)这一概念大概源自计算机网络,数据链路层的可靠传输对数据帧的传送进行流量控制和差错检验.发送方和接收方均维护一定大小的滑动窗口,对于 ...

  4. 滑动窗口协议 c语言,TCP滑动窗口协议详解.docx

    本文源自CSDN博客: HYPERLINK "/THISISPAN" /THISISPAN欢迎各位访问博客,进行技术交流 滑动窗口机制 (1)?窗口机制 滑动窗口协议的基本原理就是 ...

  5. 滑动窗口算法(Sliding Window Algorithm)

    目录 滑动窗口算法(Sliding Window Algorithm) 一.基本示例 二.经典使用 1. 连续元素最大和 题目 解法及分析 2. 最长无重复子字符串 题目 解法及分析 三.参考资料 滑 ...

  6. Java算法-滑动窗口算法(Sliding Window)(十)

    滑动窗口 滑动窗口概念不仅存在于数据链路层,也存在于传输层,两者有不同的协议,但基本原理是相近的.其中一个重要区别是,一个是针对于帧的传送,另一个是字节数据的传送. 滑动窗口(Sliding wind ...

  7. flink的(Sliding)滑动窗口

    flink的(Sliding)滑动窗口 未分组全局执行的滑动窗口(Sliding) 滑动窗口一般用于股票的可视化实现,他不会忽然高了忽然低了,他会有一个过渡缓冲区. public class Slid ...

  8. Stream Processing:滑动窗口的聚集(aggregation)操作的优化算法讲解

    本文将要讲解流处理中滑动窗口聚集操作的相关优化算法.将分别从下面几个方面讲解: 什么是滑动窗口? 什么是滑动窗口的聚集操作? 聚集操作的优化的必要性在哪里? 有哪些优化算法,它们的原理分别是什么? 4 ...

  9. 滑动窗口算法基本原理与实践

    原文作者:huansky 原文地址:滑动窗口算法基本原理与实践 目录 滑动窗口算法(Sliding Window Algorithm) 基本示例 滑动窗口法的大体框架 算法实例 1208. 尽可能使字 ...

最新文章

  1. 观看5万个游戏视频后,英伟达AI学会了自己开发「吃豆人」
  2. NBA表格_多伦多猛龙,向NBA大结局说不!猛龙夺冠创下了哪些记录?
  3. DNA Consensus String
  4. 设计模式之策略者模式
  5. Linux SSH登陆配置文件修改
  6. 【转】ArcGIS Server安装
  7. 蓝桥杯 ALGO-37 算法训练 Hankson的趣味题
  8. 【转载】高速电路设计中的电源地
  9. 管理信息系统开发项目管理
  10. 2014年南京航空航天大学计算机学院推荐研究生公示,2014年南航计算机科学与技术学院考研分数线及复试调剂办法...
  11. 阿里云 CentOS 7.4 下部署基于 Node.js 的微信小程序商城
  12. ENVI5.4中Himawari-8数据处理(向日葵8号卫星H-8)
  13. 美股,期货和国债随着大选进行中持续大幅度波动,华尔街如何看待这次结局?
  14. 服务器显示阵列卡升级,Systemx服务器在BIOS中刷新阵列卡微码
  15. 舌尖上的职场(三)我来买单!(转)
  16. e-r数据建模-概念模型 逻辑模型 物理模型-总结
  17. Hadoop2.6.5安装部署及环境变量配置
  18. android修改虚拟内存(方法)
  19. Excel破解宏密码
  20. 显著性目标检测之Learning to Promote Saliency Detectors

热门文章

  1. 【数据采集】获取网站数据(二)
  2. 15 万个监控摄像头被黑,医院、学校、监狱都被看得一清二楚!
  3. U盘数据丢失该如何快速恢复?迅米数据恢复软件帮你快速解决难题!
  4. 阿里云服务器配置(四)
  5. elementUI表格样式自定义修改
  6. wireshark抓tcp三次握手四次挥手包
  7. Proxy4Free代理服务器转换为Maxthon(MYIE2)配置
  8. 【root】小米稳定版系统添加小米官方root权限
  9. 写给妹子(han zi)的含蓄表白语
  10. DET(距离评价技术)