最小覆盖子串

复制代码
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;
}
相关推荐
寒99211 分钟前
Java中equals与 “==” 的区别
java·开发语言·jvm
潘越越18 分钟前
Maven和MyBatis学习总结
java·maven·mybatis
喵手21 分钟前
Java中set集合常用的stream方法,你了解哪几种?
java·后端·java ee
sxf35923 分钟前
vue项目调用netcore webapi接口提示:400 Bad Request的解决
java·前端·vue.js
飞鸟吟25 分钟前
【数据结构与算法】——堆(补充)
c语言·数据结构·算法·排序算法
LiuYaoheng26 分钟前
Java新手村第二站:泛型、集合与IO流初探
java·学习
ゞ 正在缓冲99%…30 分钟前
leetcode167.两数之和||
java·算法·leetcode·双指针
键盘不能没有CV键44 分钟前
【日志链路】⭐️SpringBoot 整合 TraceId 日志链路追踪!
java·git·intellij-idea
路在脚下@1 小时前
RabbitMQ惰性队列的工作原理、消息持久化机制、同步刷盘的概念、延迟插件的使用方法
java·rabbitmq
麓殇⊙1 小时前
Mybatis-缓存详解
java·缓存·mybatis