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

第7天(中等题 滑动窗口)

打卡第七天
2道中等题

image

image

class Solution {
public:int equalSubstring(string s, string t, int maxCost) {int n = s.length();vector<int> diff(n, 0);//创建数组存储s和t对应位置字符的ASCII码差值for (int i = 0; i < n; i++) {diff[i] = abs(s[i] - t[i]);}int maxLength = 0;//初始化最大长度为0int start = 0, end = 0;//首尾指针初始都为0int sum = 0;while (end < n) {//遍历,从0到n-1sum += diff[end];while (sum > maxCost) {//超过最大成本,右移窗口sum -= diff[start];start++;}maxLength = max(maxLength, end - start + 1);end++;}return maxLength;}
};

算法思路总结:

1.首先计算字符串s和t每个对应位置字符的ASCII码差值

2.使用滑动窗口&双指针,end指针向右移动,扩大窗口,当窗口内差值总和超过maxCost时,start指针向右移动,收缩窗口.

3.在满足条件(总和≤maxCost)的窗口中,记录最大长度

滑动窗口&双指针区别:

「滑动窗口」是固定大小的,「双指针」是不固定大小的;
「滑动窗口」一定是同向移动的,「双指针」可以相向移动。
「滑动窗口」是一类问题本身,「双指针」是解决一类二分查找问题的通用优化方法。

耗时≈1.5小时 明天继续

http://www.hn-smt.com/news/492/

相关文章:

  • 20251027——读后感2
  • DeepSeek-DSA讲解
  • MCP和Function Calling的区别
  • CentOS7安装Miniconda
  • P14322 「ALFR Round 11」E 空崎ヒナ 题解 (markdown)
  • [题解]P7074 [CSP-J 2020] 方格取数
  • 二分查找边界
  • P3232 [HNOI2013] 游走
  • 软件工程学习日志2025.10.27
  • 深入解析:TCP/IP 四层模型协作流程详解
  • Windows全版本激活教程(仅供测试)
  • 10月27日
  • javascript构造对象数组向服务器端传输
  • 10.25 CSP-S 模拟赛
  • 鲜花10/27
  • 读《程序员的修炼之路:从小工到专家》有感
  • 想让默认头像不再千篇一律,就顺手复刻了一下 GitHub 的思路
  • java(3)基础规范
  • 读书日记3
  • Tuack 生成 OI 比赛题目 PDF 笔记
  • 数据库三大范式、Union和Union all的区别
  • CSP-S2025 游记
  • 「LG3600-随机数生成器」题解
  • MathType7下载包安装教程2025最新下载+安装+汉化激活(附安装包,超详细)
  • 2025强网杯ezphp复现
  • 漏洞报告被拒绝的常见原因及避免方法
  • 【IEEE出版 | 重庆邮电大学主办 | 多届次、高层次】第六届人工智能与计算机工程国际学术会议(ICAICE 2025)
  • Docker容器里面部署的Jenkins的Java17升级到21版本(无需删除之前容器,内部在线升级) - 攻城狮
  • 报表知识
  • 渐进过程中大O与小o混用