当前位置: 首页 > 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.jsqmd.com/news/24021/

相关文章:

  • C++ 获取 const char* 字符串长度
  • 20251027——读后感2
  • window[-INPUT-] 还有哪些属性或方法
  • DeepSeek-DSA讲解
  • 【转载】‘tensorrt.tensorrt.Builder‘ object has no attribute ‘build_cuda_engine‘
  • paste
  • C#/.NET/.NET Core技术前沿周刊 | 第 59 期(2025年10.20-10.26)
  • Python write to file and read from file
  • Experiment3
  • 20232403 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • CF995F Cowmpany Cowmpensation
  • 背诵
  • 关系运算符逻辑运算符
  • WPF datagrid mvvm loaded 100M items,prism.wpf,prism.dryioc
  • 20232406 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 20232424 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • MLA原理讲解
  • LLM什么时候才能输出固定格式
  • MCP和Function Calling的区别
  • 《程序员修炼之道》 阅读笔记三
  • sg.绑定键盘事件
  • FastAPI 架构指南:用这份模版打造可扩展又安全的系统(附实战经验)
  • CF708E Students Camp 题解
  • 每日反思(2025_10_27)
  • 20251027
  • window[-TEXT-] 有哪些属性和方法?
  • HT-083 CSP J/S题解
  • 壁纸收集
  • 洛谷 P6965 [NEERC 2016] Binary Code /「雅礼集训 2017 Day4」编码 【经验值记录】(2-SAT 学习笔记)
  • CentOS7安装Miniconda