滑动窗口。

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

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

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

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

无非就这几种情况:

  • a 是,i 不是,则下一个窗口内的子串必不符合
  • a 是,b 也是,则下一个窗口内的子串必不符合(与当前最高记录个数相同)
  • a 不是,i是,则下一个窗口内的串必然刷新答案
  • a不是,i 不是,则下一个窗口内的子串必不符合(与当前最高记录个数相同)
相关推荐
IT观测几秒前
深度分析俩款主流移动统计工具Appvue和openinstall
android·java·数据库
华科易迅1 分钟前
Spring AOP(注解前置+后置通知)
java·后端·spring
堕2746 分钟前
JavaEE初阶——《计算机是如何工作的》
java·java-ee
0xDevNull14 分钟前
Apache RocketMQ 完全指南
java·rocketmq
XiaoLeisj17 分钟前
Android 文件存储实战:从应用私有目录读写到网络文件落盘与公共存储接入
android·java·网络·文件操作
茶本无香20 分钟前
JVM调优介绍 + 面试题标准答案(高级)
java·jvm·面试
创梦流浪人23 分钟前
soli-admin一款开箱即用的RBAC后台项目
java·spring boot·vue3·springsecurity
南山love24 分钟前
spring-boot多线程并发执行任务
java·开发语言
希望永不加班26 分钟前
SpringBoot 配置 HTTPS(自签名证书+正式证书)
java·spring boot·后端·spring·https
骇客野人38 分钟前
Java实现B+树,体会B+树做索引的精妙
java·开发语言·b树