76 - Minimum Window Substring

【算法】第76题 Minimum Window Substring 1.概述 地址:滑动窗口算法 2.解题 2.1 滑动窗口 解题步骤如下: 假设t元素是 ABC 1.初始化左右指针 2.移动右指针直到窗口中的元素包含了所有的T元素。到C的时候,窗口内的元素包含了ABC三个字符 3.缩小窗口 为什么要缩小呢?因为窗口不是最小的窗口。因此要缩小,尝试移动左指针,然后判断是否还包含,可以看到移动一位 窗口内的元素包含了ABC三个字符 4.缩小窗口 再次缩小粗昂克,然后直到窗口不满足。 5.然后往右边移动窗口。移动一位后发现传媒满足需求 6.然后再次缩小窗口,发现窗 阅读详情

Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).

For example,
S = "ADOBECODEBANC"
T = "ABC"

Minimum window is "BANC".

Note:
If there is no such window in S that covers all characters in T, return the empty string "".

If there are multiple such windows, you are guaranteed that there will always be only one unique minimum window in S.

思路分析:

此题较难。

1、初始化 start = i = 0

2、i 逐渐往后扫描S直到窗口S[start…i]包含所有T的字符,此时i = 6(字符c的位置)

3、缩减窗口:此时我们注意到窗口并不是最小的,需要调整 start 来缩减窗口。缩减规则为:如果S[start]不在T中 或者 S[start]在T中但是删除后窗口依然可以包含T中的所有字符,那么start = start+1, 直到不满足上述两个缩减规则。缩减后i即为窗口的起始位置,此例中从e开始窗口中要依次删掉e、b、a、d,start最后等于4 ,那么得到一个窗口大小为6-4+1 = 3

4、start = start+1(此时窗口肯定不会包含所有的T中的字符),跳转到步骤2继续寻找下一个窗口。本例中还以找到一个窗口start = 5,i = 8,比上个窗口大,因此最终的最小窗口是S[4…6]


/*
*/

#include "stdafx.h"
#include <iostream>

using namespace std;

class Solution_076_MinimumWindowSubstring_1 
{
private:
	int count1[256];
	int count2[256];
public:
	string minWindow(string S, string T) 
	{
		// Start typing your C/C++ solution below
		// DO NOT write int main() function
		if (T.size() == 0 || S.size() == 0)
			return "";

		memset(count1, 0, sizeof(count1));
		memset(count2, 0, sizeof(count2));

		for (int i = 0; i < T.size(); i++)
		{
			count1[T[i]]++;
			count2[T[i]]++;
		}

		int count = T.size();

		int start = 0;
		int minSize = INT_MAX;
		int minStart;
		for (int end = 0; end < S.size(); end++)
		{
			if (count2[S[end]] > 0)
			{
				count1[S[end]]--;
				if (count1[S[end]] >= 0)
					count--;
			}

			if (count == 0)
			{
				while (true)
				{
					if (count2[S[start]] > 0)
					{
						if (count1[S[start]] < 0)
							count1[S[start]]++;
						else
							break;
					}
					start++;
				}

				if (minSize > end - start + 1)
				{
					minSize = end - start + 1;
					minStart = start;
				}
			}
		}

		if (minSize == INT_MAX)
			return "";

		string ret(S, minStart, minSize);

		return ret;
	}
};



Python-编写点云处理软件(二)点云软件ui制作之仿CC界面 至本篇结束,我们已经能够获得一个有点模子的界面了,但是具体的功能还没有编写,后续的文章将逐渐完善功能。 阅读详情

相关推荐

从UE4到Unity:双叶高光技术在角色皮肤渲染中的移植全流程

本文详细解析了将UE4中的双叶高光技术移植到Unity引擎的全流程。该技术通过模拟皮肤油脂层和真皮层的不同反射特性,能显著提升角色皮肤渲染的真实感。文章从核心原理、贴图资产处理、Shader代码重构到参数调校,提供了完整的跨引擎移植实战指南,帮助开发者实现高质量的皮肤质感还原。

alice7model的博客 481

【LeetCode】76. Minimum Window Substring(C++)

地址:https://leetcode.com/problems/minimum-window-substring/ 题目: Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n)O(n)O(n). Exam...

Ethan95的博客 417

设备工况在线智能诊断方案(2026完整版)

《设备工况在线智能诊断方案(2026完整版)》摘要 本项目基于2026年智能制造与工业互联网技术趋势,构建覆盖数据采集、智能诊断、预判预警、运维调度的全流程设备管控体系,解决传统运维人工依赖度高、故障滞后等行业痛点。方案采用工业5G、边缘计算、AI大模型等七大核心技术,实现设备故障诊断准确率≥98%、预判覆盖率≥95%,降低运维成本60%以上,提升设备稼动率15%。通过分层架构设计,适配企业1260台多品类设备,满足高实时(10ms级采集)、高精度(误差≤0.1%)、高安全(等保三级)要求,预计投资回收期3

随读手记 215

LeetCode 76. Minimum Window Substring 题解

本题是滑动窗口算法的经典难题。使用哈希表或数组统计字符需求双指针维护滑动窗口在满足条件时收缩窗口找最优解注意重复字符的处理。

cannonjinx的博客 4073

速腾R128雷达+海康全景相机ROS数据采集避坑实录:从‘雷达不转’到MATLAB标定的完整流程

本文详细记录了速腾R128激光雷达与海康威视全景相机在ROS环境下的数据采集与MATLAB标定全流程。从硬件配置的常见陷阱(如雷达旋转参数设置)、驱动编译的依赖管理,到多传感器同步的实战技巧和MATLAB标定方法,提供了完整的避坑指南和技术方案。特别针对RoboSense R128雷达和海康相机的特殊需求给出了具体解决方案。

weixin_28717807的博客 1221

生信人的一天~HIFI数据+HIC数据组装基因组

HIFI+HIC数据组装基因组!

qq_43337286的博客 9532

LeetCode76——Minimum Window Substring

LeetCode76——Minimum Window Substring 以前似乎做过类似的,点了LeetCode类似题想起来了(这点把不同类型的题目分类真心不错) 好了,跟LeetCode30——Substring with Concatenation of All Words很相似,需要维护一个Map。 当时做这题的时候就感觉自己做得非常不智能,有点像朴素的字符串的模式匹配,效率比较低。

上善若水 4074

小米手机安装Burp证书失败原因与DER格式改造指南

CA证书是HTTPS抓包和移动安全测试的基础组件,其本质是遵循X.509标准的数字凭证,依赖ASN.1/DER编码格式与完整证书链实现可信验证。Android系统默认支持PEM和DER两种编码,但MIUI自14版本起强化安全策略,仅识别DER二进制格式,并强制校验Subject Alternative Name(SAN)、Basic Constraints及证书链完整性。这种企业级加固逻辑导致Burp Suite导出的PEM格式.cer文件在小米设备上‘安装成功但无效’。本文聚焦证书格式转换、SAN字段注入

weixin_33646989的博客 627

76. Minimum Window Substring

76. Minimum Window Substring标签(空格分隔): leetcode hard题目 Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).For example, S = "ADOBE

分享人工智能学习心得与实践经验,探讨应用场景,见证变革与进步 821

PyCharm配置SSH远程解释器第3步时弹框报错:com.google.gson.stream.MalformedJsonException: Expected value at l...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1930

【语音分析】语音倒谱分析(变声器 男变女 女变男 童声)【含GUI Matlab源码 4247期】

语音倒谱分析(变声器 男变女 女变男 童声) 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 826

LeetCode 76. Minimum Window Substring(滑窗)

题目来源:https://leetcode.com/problems/minimum-window-substring/ 问题描述 76.Minimum Window Substring Hard Given a string S and a string T, find the minimum window in S which will contain all the charact...

da_kao_la的博客 248

开源工具对比:5款主流大数据脱敏框架评测

数据脱敏(Data Masking/Anonymization),也称为数据漂白、数据去标识化,是指在不影响数据可用性的前提下,通过一定的技术手段对敏感信息进行处理,使其无法被识别或关联到具体个人或实体的过程。当应用程序向数据库写入数据(INSERT/UPDATE)时,ShardingSphere 会拦截 SQL,对配置了脱敏规则的字段,使用指定的算法进行加密/脱敏处理,然后将处理后的数据写入到。如果你的答案是“是”,那么数据脱敏,尤其是针对海量数据的。好的,各位技术同仁,数据安全领域的探索者们,大家好。

小程序开发 1185

76. Minimum Window Substring

76.Minimum Window Substring Hard Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n). Example: Input: S = "ADOBECODEBANC", T = "ABC" Output: "BANC" Note: If there is no such w.

热爱编程,热爱技术 208

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LeetCode(76)Minimum Window Substring

题目如下: Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n). For example, S = "ADOBECODEBANC" T = "ABC" Minimum window is

BUILD 3148

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【leetcode】76. Minimum Window Substring​​​​​​​

76.Minimum Window Substring Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n). Example: Input: S = "ADOBECODEBANC", T = "...

lemonade13的博客 130

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: 80 - Remove Duplicates from Sorted Array II
下一篇: 33 - Search in Rotated Sorted Array
hellochenlu
博客等级 码龄14年 97粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值