public static String minWindow2(String s, String t){
if (t.length()>s.length()){
return "";
}
HashMap<Character, Integer> hashMap = new HashMap<>();
for (Character i:t.toCharArray()){
if (hashMap.containsKey(i)){
hashMap.put(i,hashMap.get(i)-1);
}else{
hashMap.put(i,-1);
}
}
//滑动窗口
int start=0;
int end=0;
int max=Integer.MAX_VALUE;
String res = "";
while (end<s.length()){
//不为null
if (hashMap.get(s.charAt(end))!=null){
hashMap.put(s.charAt(end),hashMap.get(s.charAt(end))+1);
//判断符合不
if (test18(hashMap)){
//将start往后移动
while (test18(hashMap)&&start<=end){
//更改max
if (end-start+1<max){
max = end-start+1;
res = s.substring(start,end+1);
}
if (hashMap.get(s.charAt(start))!=null){
//减去1
hashMap.put(s.charAt(start),hashMap.get(s.charAt(start))-1);
}
start++;
}
end++;
}else{
end++;
}
}else{
end++;
}
}
return res;
}
public static boolean test18(HashMap<Character, Integer> hashMap){
for (Integer i:hashMap.values()){
if (i<0){
return false;
}
}
return true;
}
最小覆盖子串
新生农民2025-04-13 13:58
相关推荐
CoderYanger38 分钟前
C.滑动窗口-求子数组个数-越长越合法——2799. 统计完全子数组的数目C++业余爱好者42 分钟前
Java 提供了8种基本数据类型及封装类型介绍厕所博士43 分钟前
红黑树原理前置理解—— 2-3 树想用offer打牌43 分钟前
RocketMQ如何防止消息丢失?皮卡龙1 小时前
Java常用的JSON萌>__<新1 小时前
力扣打卡每日一题————除自身外所有元素的乘积利刃大大2 小时前
【JavaSE】十三、枚举类Enum && Lambda表达式 && 列表排序常见写法float_六七2 小时前
Java反射:万能遥控器拆解编程xu_yule2 小时前
算法基础—搜索(2)【记忆化搜索+BFS+01BFS+Floodfill]han_hanker2 小时前
java 异常类——详解