首页 > TAG信息列表 > LeetCode76
LeetCode76 最小覆盖子串
滑动窗口+map 设定左右双指针,若滑动窗口内不包含t中所有的字符则右指针右移,若包含t所有字符则左指针右移同时更新最小值和对应边界直到不包含所有的,以此循环直到s的最后 时间复杂度:O(C*m+n),m为s的长度 空间复杂度:O(C),C为t的长度 class Solution { Map<Character,Integer> needleetcode76.最小覆盖子串
leetcode76.最小覆盖子串 题目 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。 如果 s 中存在这样的子串leetcode76. 最小覆盖子串(滑动窗口 哈希表)
链接:https://leetcode-cn.com/problems/minimum-window-substring/ 题目 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于leetcode76.最小覆盖子串(困难)
双指针经典题目,可以看一下leetcode.209 自己的思路: 记录出s中每个字符后面该字符的位置,当left指针移动之后,导致窗口内少了一个字符,right直接移动到left之前指向的那个字符。 自己的思路存在的问题: 注意题目中t的字符是可重复的,如果不重复的话才可以这样做! 官方思路: 双指针