给你一个字符串 S、一个字符串 T 。请你设计一种算法,可以在 O(n) 的时间复杂度内,从字符串 S 里面找出:包含 T 所有字符的最小子串。
示例:
输入:S = “ADOBECODEBANC”, T = “ABC”
输出:“BANC”
思路与代码
用数组记录
class Solution {
public String minWindow(String s, String t) {
int[] need = new int[128]; // need来记录窗口中各字符还需要多少个
// 记录需要的字符数
for (int i = 0; i < t.length(); i++) {
need[t.charAt(i)]++;
}
int l = 0, size = Integer.MAX_VALUE, start = 0, count = t.length();
for (int r = 0; r < s.length(); r++) {
char c = s.charAt(r);