From de9c5dfa670c24ff196eefa9cca02cccae80ab97 Mon Sep 17 00:00:00 2001
From: linlihong <747682928@qq.com>
Date: Fri, 6 Sep 2024 17:31:10 +0800
Subject: [PATCH] =?UTF-8?q?2024/9/6=20Hot100=20substring=20=E6=9C=AA?=
 =?UTF-8?q?=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../java/com/cool/hot100/substring/Num79.java | 49 +++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 src/main/java/com/cool/hot100/substring/Num79.java

diff --git a/src/main/java/com/cool/hot100/substring/Num79.java b/src/main/java/com/cool/hot100/substring/Num79.java
new file mode 100644
index 0000000..f07d7ac
--- /dev/null
+++ b/src/main/java/com/cool/hot100/substring/Num79.java
@@ -0,0 +1,49 @@
+package com.cool.hot100.substring;
+
+import java.util.*;
+
+/**
+ * Created with IntelliJ IDEA.
+ *
+ * @Author: Cool
+ * @Date: 2024/09/06/13:57
+ * DayNumber 1
+ * Hard 3
+ * Level ?
+ */
+public class Num79 {
+
+    public String minWindow(String s, String t) {
+        if(s.length()<t.length()){
+            return "";
+        }
+        int minLeft=Integer.MIN_VALUE;
+        int minRight=Integer.MAX_VALUE;
+        int left=0;
+        int right=0;
+        char[] charArray=s.toCharArray();
+        int index=0;
+        Map<Character,Integer> tMap=new HashMap<>();
+        Map<Character,Integer> sMap=new HashMap<>();
+        for(int i=0;i<t.length();i++){
+            tMap.put(t.charAt(i),tMap.getOrDefault(i,0)+1);
+        }
+        for(int i=0;i<charArray.length;i++){
+            if(tMap.containsKey(charArray[i])){
+                sMap.put(charArray[i],sMap.get(charArray[i])+1);
+                if(tMap.get(charArray[i])>sMap.get(charArray[i])){
+                    right++;
+                }else{
+                    while (sMap.get(charArray[left])>tMap.get(charArray[left])){
+                        sMap.put(charArray[left],sMap.get(charArray[left])-1);
+                    }
+                    left++;
+                }
+            }
+            right++;
+        }
+        return s.substring(left,right);
+    }
+
+
+}