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

NC28 最小覆盖子串【牛客网】

文章目录

  • 零、原题链接
  • 一、题目描述
  • 二、测试用例
  • 三、解题思路
  • 四、参考代码

零、原题链接


NC28 最小覆盖子串

一、题目描述

在这里插入图片描述

二、测试用例

在这里插入图片描述

三、解题思路

  1. 基本思路:
      滑动窗口 + 散列表
  2. 具体思路:
    • 先统计字符串 T 中的字符数量;
    • 建立滑动窗口:
      • 每次遍历字符,将该字符添加进窗口:
        • 同时判断是否是属于字符串 T 中的字符,是则对应字符数量 – ,如果该字符数量将为 0 ,则字符类型数量 --;
      • 如果字符类型数量为 0 ,则表示窗口已经包含了字符串 T 的所有字符,则开始收缩窗口:
        • 每次收缩窗口,则判断舍弃的字符是否是字符串 T 中的字符,是则对应字符数量 ++ ,
        • 如果该字符数量大于 0 ,则表示已经收缩到最小窗口,
          • 则判断是否为当前最短的,是则更新最短字符串的起始坐标;
          • 字符类型数量 ++ ;
    • 判断最短字符串下标是否合法,合法则返回对应字符串,不合法说明不存在对应字符串,则返回空字符串;

四、参考代码

时间复杂度: O ( ∣ S ∣ + ∣ T ∣ ) \Omicron(|S|+|T|) O(S+T)【两个字符串都只遍历了一遍】
空间复杂度: O ( ∣ T ∣ ) \Omicron(|T|) O(T)【只需要额外存放字符串 T 的字符数量】

#include <unordered_map>
class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param S string字符串* @param T string字符串* @return string字符串*/string minWindow(string S, string T) {unordered_map<char, int> m;for (int i = 0; i < T.length(); i++) {if (m.count(T[i]))m[T[i]]++;elsem.emplace(T[i], 1);}int minS = -S.length() - 1, minE = 0;int num = m.size();for (int s = 0, e = 0; e < S.length(); e++) {if (m.count(S[e]) && --m[S[e]] == 0)// 添加字符num--;while (num == 0) { // 舍弃字符if (m.count(S[s]) && ++m[S[s]] > 0) {if (e - s < minE - minS) {minS = s;minE = e;}num++;}s++;}}return minS < 0 ? "" : S.substr(minS, minE - minS + 1);}
};

相关文章:

  • 雷卯针对易百纳 海思Hi3519AV100开发板防雷防静电方案
  • Attention Is All You Need:抛弃循环神经网络的时代来了!
  • QT开发技术【ffmpeg + QAudioOutput】音乐播放器
  • LangChain开发环境搭建
  • 常用的录音芯片型号有哪些?
  • ‌RF Choke(射频扼流圈)
  • 5.Promise,async,await概念(1)
  • nmcli connection常用命令及设置wifi为AP模式
  • 【Zephyr 系列 7】BLE 数据透传系统设计与实现:双向通信、缓冲区与状态同步全解析
  • MySQL 8.0 窗口函数全面解析与实例
  • 关于项目多语言化任务的概述
  • 【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
  • CppCon 2015 学习:Beyond Sanitizers
  • 2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
  • Mysql的B-树和B+树的区别总结
  • stripe支付测试,ngrok无法使用?免费vscode端口转发,轻松简单!
  • 【输入URL到页面展示】
  • OurBMC技术委员会2025年二季度例会顺利召开
  • Android 项目的核心配置文件
  • 解决fastadmin、uniapp打包上线H5项目路由冲突问题
  • 网站支持qq登录怎么做/灰色行业关键词优化
  • 玩具网站建设策划书/媒介
  • frontpage可以做网站吗/腾讯企点app下载安装
  • 网站建设公司前十名/如何进行网络推广营销
  • 专业做网站广州/百度com百度一下你
  • seo排名赚app下载/福州seo快速排名软件