cari
RumahJavajavaTutorialSubrentetan tetingkap minimum

Subrentetan tetingkap minimum

Sep 18, 2024 pm 07:24 PM

Minimum window substring

Masalah

Pendekatan kekerasan:
TC: O(N^2), SC: O(256) yang malar
Nota: Ini akan membawa kepada TLE

class Solution {
    public String minWindow(String s, String t) {


        int min = Integer.MAX_VALUE;
        int start =-1;
        int end = -1;
        //generating all possible substrings and returning the smallest substring having
        //all the character of string t
        for(int i =0;i<s.length int arr new all the asci characters with count of character in t for k="0;k<t.length();k++){" j="i;j<s.length();j++){" if at s is also present increase>0){
                    count++;
                }
                arr[s.charAt(j)]--;//decrease the frequency of s.charAt(j) by 1 in arr
                if(count ==t.length()){// if count == length of t we have found one potential substring 
                    if(min> j-i+1){
                        min  = j-i +1;
                        start  = i;
                        end = j;
                    }
                    break;// break out as there is no need to propagate further in the current iteration
                }
            }
        }
        if(start ==-1 || end ==-1) return "";// if not found 
        return s.substring(start,end+1);// else
    }
}
</s.length>

Pendekatan optimum:
TC: O(n) , SC:O(256) yang malar

// this intuition will require solving such problems as much as possible
class Solution {
    public String minWindow(String s, String t) {
        int left=0,right=0;
        int min = Integer.MAX_VALUE;
        int count =0;
        int arr[] = new int[256]; // has table for keeping count of characters
        // keeping track of start and end index
        int start =-1;
        int end = -1;
        for(int i=0;i<t.length arr while char c="s.charAt(right);" if>0){ // if the character is part of t, then increment count
                count++;
            }
            arr[c]--;// decrease the count of the character in the hash table once it is taken into consideration 
            while(count ==t.length()){ // if count == t.size() we have found a potential window
                if(min > right-left+1){
                    min = right-left+1;
                    //update the start and end accordingly 
                    start = left;
                    end = right;
                }
                arr[s.charAt(left)]++;//since we are removing this character from window and increasing the left pointer to point to next character after this, there will be one less
                //character that is not part of the t 
                if(arr[s.charAt(left)]>0){ // if after doing +1 for arr[s.charAt(left)] character, if it become positive then it will mean that this was part of t, and now we will have to look for this character in the next window 
                    count--; // since this was part of t, then count should decrement by 1
                }
                left++;
            }
            right++;
        }
        if(start ==-1 || end ==-1) return "";
        return s.substring(start,end+1);
    }
}
</t.length>

Atas ialah kandungan terperinci Subrentetan tetingkap minimum. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)