76 Minimum Window Substring
1. Question
2. Implementation
class Solution {
public String minWindow(String s, String t) {
int[] map = new int[256];
int count = t.length();
int minLen = Integer.MAX_VALUE;
int minStart = 0, minEnd = 0, start = 0 , end = 0;
for (char c : t.toCharArray()) {
++map[c];
}
while (end < s.length()) {
if (map[s.charAt(end)] >= 1) {
--count;
}
--map[s.charAt(end)];
++end;
while (count == 0) {
if (end - start < minLen) {
minEnd = end;
minStart = start;
minLen = end - start;
}
if (map[s.charAt(start)] >= 0) {
++count;
}
++map[s.charAt(start)];
++start;
}
}
return minLen == Integer.MAX_VALUE ? "" : s.substring(minStart, minEnd);
}
}3. Time & Space Complexity
Last updated