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
相关推荐
To_OC2 小时前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过金銀銅鐵5 小时前
[Python] 扩展欧几里得算法狼爷6 小时前
吃透 Java Function 接口,搞定 99% 的 Stream 场景To_OC8 小时前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了祎雪双十Gy10 小时前
从 DataX 的配置加载说起:我用 FastJson2 做了一个轻量级动态配置管理库小锋java123410 小时前
分享一套锋哥原创的SpringBoot4+Vue3宠物领养网站系统考虑考虑13 小时前
Java实现hmacsha1加密算法掉鱼的猫14 小时前
Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚plainGeekDev14 小时前
广播接收器 → Flow + LifecycleplainGeekDev14 小时前
EventBus → SharedFlow