当前位置: 首页 > news >正文

Java | Leetcode Java题解之第424题替换后的最长重复字符

题目:

题解:

public class Solution {public int characterReplacement(String s, int k) {int len = s.length();if (len < 2) {return len;}char[] charArray = s.toCharArray();int left = 0;int right = 0;int res = 0;int maxCount = 0;int[] freq = new int[26];// [left, right) 内最多替换 k 个字符可以得到只有一种字符的子串while (right < len){freq[charArray[right] - 'A']++;// 在这里维护 maxCount,因为每一次右边界读入一个字符,字符频数增加,才会使得 maxCount 增加maxCount = Math.max(maxCount, freq[charArray[right] - 'A']);right++;if (right - left > maxCount + k){// 说明此时 k 不够用// 把其它不是最多出现的字符替换以后,都不能填满这个滑动的窗口,这个时候须要考虑左边界向右移动// 移出滑动窗口的时候,频数数组须要相应地做减法freq[charArray[left] - 'A']--;left++;}res = Math.max(res, right - left);}return res;}
}
http://www.lryc.cn/news/446764.html

相关文章:

  • Xcode 16 Pod init 报错
  • 【数据结构】Java的HashMap 和 HashSet 大全笔记,写算法用到的时候翻一下,百度都省了!(实践篇)
  • Docker 教程:如何查看容器的最后 300 行实时日志
  • Qwen2-VL论文阅读笔记
  • APScheduler、Django实现定时任务,以及任务动态操作
  • SpringBoot开发——整合Apache POI轻松生成精美的Excel报表
  • 海信智能电视的使用心得
  • 【YashanDB知识库】客户端字符集与数据库字符集兼容问题
  • Session和Cookie是什么?有什么区别?分布式Session问题又是什么?
  • 项目实战:Qt+OSG爆破动力学仿真三维引擎测试工具v1.1.0(加载.K模型,子弹轨迹模拟动画,支持windows、linux、国产麒麟系统)
  • CSS开发全攻略
  • OpenCV运动分析和目标跟踪(3)计算图像序列的加权平均值函数accumulateWeighted()的使用
  • vue3中echarts柱状图横轴文字太多放不下怎么解决
  • Web 开发安全与最佳实践:MVC、会话管理与常见攻击防御
  • Segformer双显卡推理速度测试
  • 使用在线电子模拟器 Wokwi 运行 ESP32 示例(Arduino IDE、ESP32C3)
  • vue3+element-plus icons图标选择组件封装
  • Spring validation校验框架
  • UBUNTU20.04安装CH384串口卡驱动
  • JWT(JSON Web Tokens) 详细介绍
  • 数据结构练习题————(二叉树)——考前必备合集!
  • 一天认识一个硬件之鼠标
  • Django 请求配置
  • 轮播图组件更加完善版
  • cpu路、核、线程
  • 鸿蒙开发(NEXT/API 12)【硬件(注册出行业务事件监听)】车载系统
  • 安卓中有main函数吗?
  • js-17-对数组、对象进行浅拷贝和深拷贝
  • Ubuntu24.04中安装Electron
  • CPU中也应用到了缓存:CPU3层高速缓存,以及它的缓存一致性问题、MESI协议和Java的一些应用