1.题目
2.解法
①字符串,一维数组+双指针
public class Solution {
public String minWindow(String source , String target) {
if(source == null || target == null) return "";
int start = -1;
int length = Integer.MAX_VALUE;
int count = target.length();
int[] c = new int[128];
int k1 = 0;
int k2 = 0;
for(char t : target.toCharArray()){
c[t]++;
}
while(k2 < source.length()){
while(k2 < source.length() && count > 0){
if(c[source.charAt(k2)] > 0){
count--;
}
c[source.charAt(k2)]--;
k2++;
}
while(count == 0){
if(c[source.charAt(k1)] == 0){
count++;
}
c[source.charAt(k1)]++;
k1++;
}
if(k2 - k1 + 1 < length){
length = k2 - k1 + 1;
start = k1 - 1;
}
}
return start == -1 ? "" : source.substring(start, start + length);
}
}