【leetcode刷题笔记】Minimum Window Substring
2020-12-13 05:27
标签:style blog http color os strong io 2014 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, Minimum window is Note: If there are multiple such windows, you are guaranteed that there will always be only one unique minimum window in S. 题解:参考leetcode给出的解答,实现了O(n)的算法。 用到的主要变量如下: 设置一个Map:ToFind记录T中出现的字符的种类和个数,我们需要在S中找到这些字符。 设置另一个Map:hasFound记录当前窗口中包含的字符的种类和个数。 这两个Map,结合一个变量count——在当前窗口中找到的T中的字符个数,我们就可以判断当前窗口是否包含T中所有的字符了。 算法的主要过程如下: 举个例子:S = "acbbaca" , T = "aba"。 如上图所示,end从初始的位置扩展到下面的图中的位置时候,窗口包含了T中所有的字符,而且begin也无法挪动了,此时得到一个最小窗口长度为5; 接下来继续移动end直到下一个包含在T里面的元素处(见第二幅图),然后把begin尽可能往右移动(见第三幅图),得到一个新的当前最小窗口baca,由于它比最小窗口acbba短,所以更新最小窗口为baca。算法结束。 所以我们可以看出begin只有在找到T的时候才右移收缩窗口,而end一直后移。在找到第一个窗口后,end每移动到一个T里面包含的元素处,就会有一个新的窗口(比如上述end从索引为4的地方挪动到索引为6的地方)。 代码如下: 【leetcode刷题笔记】Minimum Window Substring,搜素材,soscw.com 【leetcode刷题笔记】Minimum Window Substring 标签:style blog http color os strong io 2014 原文地址:http://www.cnblogs.com/sunshineatnoon/p/3870054.html
S = "ADOBECODEBANC"
T = "ABC"
"BANC"
.
If there is no such window in S that covers all characters in T, return the emtpy string ""
.
1 public class Solution {
2 public String minWindow(String S, String T) {
3 HashMap
上一篇:Microsoft.Aspnet.Snapin 命名空间
下一篇:php基础学习
文章标题:【leetcode刷题笔记】Minimum Window Substring
文章链接:http://soscw.com/essay/31048.html