leetcode76 最小覆蓋子串 滑動視窗

2021-10-24 10:10:17 字數 973 閱讀 9731

題目

思路:滑動視窗

使用new int[128]陣列儲存t中每個字元出現的次數

使用new int[128]陣列儲存視窗中每個字元出現的次數

使用minlength表示最小子串長度。

使用count記錄目前視窗中的有效字元數,當count == t.length()時,視窗長度為乙個包含t中所有字元的子串的長度,更新minlength

視窗右移,直到視窗中包含有效字元數量小於t.length()

class

solution

int[

] needs =

newint

[128];

for(

int i =

0; i < t.

length()

;i++

)int

window =

newint

[128];

int count =0;

int left =

0, right =

0, minlength = s.

length()

+1; string res ="";

while

(right < s.

length()

)while

(count == t.

length()

) window[ch]--;

if(right - left +

1< minlength)

left++;}

right++;}

return res;

}}

****

LeetCode76 最小覆蓋子串

給定乙個字串 s 和乙個字串 t,請在 s 中找出包含 t 所有字母的最小子串。示例 輸入 s adobecodebanc t abc 輸出 banc 說明 字串和雜湊表的問題。hashmap來儲存t字串中個字母元素的出現次數,left right記錄當前子字串的左右下標值,min minleft ...

leetcode 76 最小覆蓋子串

這道題我使用了很笨的方式花了好久解決了,但是時間複雜度太度,只看網上檢視原始碼,不得不說網上的答案基本都是一樣的,但是對於基礎相對薄弱的我來說這些 看起來很是費勁,還用要加強c 基礎的練習才行。思路相對來說不是很難 1 首先構架t字串的hash表,因為字元與ascii碼較好的關係,使用vector陣...

leetcode76 最小覆蓋子串

給定乙個字串 s 和乙個字串 t,請在 s 中找出包含 t 所有字母的最小子串。示例 輸入 s adobecodebanc t abc 輸出 banc 說明 如果 s 中不存這樣的子串,則返回空字串 如果 s 中存在這樣的子串,我們保證它是唯一的答案。典型雙指標滑動串列埠題目,先將t建dict,然後...