算法分析——滑动窗口
时间:2021-08-09
本文章向大家介绍算法分析——滑动窗口,主要包括算法分析——滑动窗口使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
定义:
一个大小可变的窗口,左右端点方向一致的移动,搜寻满足要求的数据。
使用:
1. 在序列中使用时,首先初始化左右指针left=right=0;
2. 不断扩大right,使得[left,right]窗口内序列满足要求;
3. 停止增加right,转而增加left缩小窗口,直至窗口中的序列不再满足要求,每次增加left都应更新结果;
4. 重复2,3步骤,直到right到达序列尽头;
例题:
给定一个字符串 s
,请你找出其中不含有重复字符的 最长子串 的长度。
题解:
1 class Solution { 2 public int lengthOfLongestSubstring(String s) { 3 // 哈希集合,记录每个字符是否出现过 4 Set<Character> occ = new HashSet<Character>(); 5 int n = s.length(); 6 int rk = 0, ans = 0; 7 for (int i = 0; i < n; ++i) { 8 if (i != 0) { 9 // 左指针向右移动一格,移除一个字符 10 occ.remove(s.charAt(i - 1)); 11 } 12 while (rk < n && !occ.contains(s.charAt(rk))) { 13 // 不断地移动右指针 14 occ.add(s.charAt(rk)); 15 ++rk; 16 } 17 // 第 i 到 rk 个字符是一个极长的无重复字符子串 18 ans = Math.max(ans, rk - i); 19 } 20 return ans; 21 } 22 }
原文地址:https://www.cnblogs.com/iscanghai/p/15117416.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 小程序代码复用 - template
- 五. Spring Security 权限管理
- 文档驱动 —— 表单组件(五):基于Ant Design Vue 的表单控件的demo,再也不需要写代码了。 表单一 公司信息表单二 员工信息,简化版,只是为了演示表单的切换。以后会出
- 文档驱动 —— 查询组件:将查询功能做到极致!你说还有啥没包含进来?antdv + vue 3.0 全新体验 快捷查询个性化查询方案更换各种查询方式更多的查询条件meta 驱动封装基础
- ES6能干啥?
- JQuery中DOM对象
- ES6都有什么?
- 前端html换肤
- 纯CSS换肤
- JS模块化和使用
- JS中的数组方法
- JS规范注释
- 选择排序,冒泡排序
- PHP时间戳
- 阿波罗的轻语