leetcode 76:Minimum Window Substring
2015-11-26 22:39
465 查看
题目:
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 =
T =
Minimum window is
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.
思路:
参考:https://leetcode.com/discuss/5469/is-the-length-of-t-considered-constant-or-m
时间复杂度:O(n)
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.
思路:
参考:https://leetcode.com/discuss/5469/is-the-length-of-t-considered-constant-or-m
时间复杂度:O(n)
class Solution { public: string minWindow(string s, string t) { int size1 = s.size(), size2 = t.size(); if (size1 == 0 || size2 == 0) return (""); vector<int> hash(128, 0),require(128,0); for (int i = 0; i < size2; ++i) { hash[t[i]]++; require[t[i]] = 1; } int i = -1, j = 0, minLen = INT_MAX, minIndex = 0, count = size2; while (i < size1 && j < size1) { if (count) { hash[s[++i]]--; if (require[s[i]] && hash[s[i]] >= 0) --count; } else { if (minLen > i - j + 1) { minLen = i - j + 1; minIndex = j; } hash[s[j]]++; if (require[s[j]] && hash[s[j]] > 0) ++count;//如果hash[s[j]]++后还小于等于0,则count不能加1,不过我觉得不会出现不大于0的情况 ++j; } } if (minLen == INT_MAX) return ""; return s.substr(minIndex, minLen); } };
相关文章推荐
- 1、Two Sum
- Delphi 服务操作
- C++第十五课 文件
- 20151126
- ! cocos2d sprintf的问题
- 【学神-RHEL7】1-4-1-Linux文件管理和恢复误删除的文件
- 使用pyinstaller打包python为exe文件
- CTime转换
- Android之——根据手势简单缩放图片
- 从小白到大数据科学家
- 黑马程序员——Java笔记——Eclipse快捷键总结
- oj 2701题与7无关的数
- 第二百三十八天 how can I 坚持
- 含有投票故障组的磁盘组存储常规文件
- 数据结构 — 图 之 关键路径、关键活动 (文字表述)
- AXI-Stream总线知识
- HDU 3183 A Magic Lamp RMQ
- 结构体定义 typedef struct 用法详解和用法小结 http://blog.sina.com.cn/s/blog_4fdabc820100fsxu.html
- androidStudio 自定义快捷代码的快捷方式
- opencv 学习记录