滑动窗口。

1456 定长子串中元音的最大数目

采用滑动窗口。每次移动一个位置,判断当前窗口内的子串内目标元素的个数,若比之前更大就更新结果。

如何判断是否更新结果?也即,如何判断当前窗口内所含目标元素个数,是否为遍历到这个窗口为止的最大值?

对于下图的字符串 abci,假如我们已经计算出了子串 abc 的元音个数,那么从子串 abc 到子串 bci,只需要考虑移除(离开窗口)的字母 a 是不是元音,以及添加(进入窗口)的字母 i 是不是元音即可,因为中间的字母 b 和 c 都在这两个子串中。

无非就这几种情况:

  • a 是,i 不是,则下一个窗口内的子串必不符合
  • a 是,b 也是,则下一个窗口内的子串必不符合(与当前最高记录个数相同)
  • a 不是,i是,则下一个窗口内的串必然刷新答案
  • a不是,i 不是,则下一个窗口内的子串必不符合(与当前最高记录个数相同)
相关推荐
y***613110 小时前
【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目
java·spring boot·spring
tanxinji10 小时前
RabbitMQ四种交换器类型详解及示例
java·rabbitmq
刘一说11 小时前
一次生产环境 Tomcat 7 + JDK 7 应用启动失败的完整排查与修复实录
java·tomcat·firefox
七夜zippoe11 小时前
JVM类加载机制(Class Loading)详解:双亲委派模型与破坏实践
java·开发语言·jvm·类加载·双亲委派
黄昏恋慕黎明12 小时前
spring MVC了解
java·后端·spring·mvc
-Xie-14 小时前
Redis(八)——多线程与单线程
java·数据库·redis
Kuo-Teng14 小时前
LeetCode 279: Perfect Squares
java·数据结构·算法·leetcode·职场和发展
Filotimo_14 小时前
SpringBoot3整合Druid数据源
java·spring boot
百锦再14 小时前
第18章 高级特征
android·java·开发语言·后端·python·rust·django
乄bluefox14 小时前
Reactor 中的 doOnError 与 doOnCancel
java·reactor·rea