76. 最小覆盖子串-力扣hot100(C++)

76. 最小覆盖子串s

初始化和特判

//本题做题思想
//从头开始,首先找到一个包含所有字母的字串,将i移动到包含字串字母的位置,然后更新长度和字符串ans后,
//i的位置加1,j的位置也加1,从新开始上面的流程,找一个包含所有字符串t字母的子串
		unordered_mapneed;//need记录下来每个字母‘需要’多少,为正数
		//对于不需要的字母和本来需要但超出数量的字母,依旧记录,但减1后变负数
        int cnt = 0;//cnt记录总共需要多少个
        int ansnum = 100010;//ans记录最短的字符子串,ansnum维护最小的长度
        string ans = "";
        if(s.size() < t.size() ) return ans;
        if(s == t) return s;

统计字符数

for(int i = 0; i < t.size();i++){
            need[t[i]]++;
}
cnt = t.size();

你可能感兴趣的:(leetcode,leetcode,c++,算法)