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

最小覆盖子串+滑动窗口

题目:
在这里插入图片描述
思考:

  1. 使用哈希表记录出现次数
  2. 经典滑动窗口

实现:

class Solution {
public:unordered_map<char,int> s_n;unordered_map<char,int> t_n;bool check(){bool ret=true;for (auto [c,n]:t_n){if (s_n[c]<n){ret=false;break;}}return ret;}string minWindow(string s, string t) {if (s.size()<t.size()){return "";}for (auto c:t){t_n[c]++;s_n[c]=0;}int l=0;int r=-1;int min_size=s.size();int min_l=0;int min_r=-1;for (int i=0;i<s.size();i++){r++;auto find_i=t_n.find(s[i]);if (find_i==t_n.end()){continue;}s_n[s[i]]++;while(l<=r&&check()){if(r-l+1<=min_size){min_size=r-l+1;min_l=l;min_r=r;}s_n[s[l]]--;l++;}}return min_r!=-1?s.substr(min_l,min_size):"";}
};
http://www.dtcms.com/a/347832.html

相关文章:

  • 【JVM内存结构系列】二、线程私有区域详解:程序计数器、虚拟机栈、本地方法栈——搞懂栈溢出与线程隔离
  • mysql为什么使用b+树不使用红黑树
  • tcpdump命令打印抓包信息
  • 用vscode使用git工具
  • 深度优先搜索(DFS)和广度优先搜索(BFS)
  • 【内网渗透】Relay2LDAP之NTLMKerberos两种利用
  • windows中bat脚本的一些操作(三)
  • 如和在不同目录之间引用模块-python
  • 微调系列:LoRA原理
  • MVC模式在个人博客系统中的应用
  • 【通俗易懂】TypeScript 增加了 JavaScript 的可选链 (?.) 和空值合并运算符 (??)理解
  • 【集合和映射】USACO Bronze 2019 December - 我在哪Where Am I?
  • 机器学习案例——预测矿物类型(模型训练)
  • DS18B20温度传感器详解
  • 电阻的功率
  • 多光谱相机检测石油石化行业的跑冒滴漏的可行性分析
  • 电蚊拍的原理及电压电容参数深度解析:从高频振荡到倍压整流的完整技术剖析
  • 决策树基础学习教育第二课:量化最优分裂——信息熵与基尼系数
  • 01_Python的in运算符判断列表等是否包含特定元素
  • [Vid-LLM] 创建和训练Vid-LLMs的各种方法体系
  • crypto.randomUUID is not a function
  • 一个备份、去除、新增k8s的node标签脚本
  • Redis(八股二弹)
  • 玳瑁的嵌入式日记D24-0823(数据结构)
  • 每日一题8.23
  • Day26 树的层序遍历 哈希表 排序算法 内核链表
  • 线程池理解
  • CMake安装教程
  • 传统 AI 与生成式 AI:IT 领导者指南
  • 10.Shell脚本修炼手册---脚本的条件测试与比较