1.維護乙個視窗,不斷的向右邊移動
2.滿足要求後,移動左邊,當不滿足時,跳出。
3.重複1,2.得出答案。
下面有兩題leetcode題,一道困難一道中等,現在看來還挺簡單的,23333
另外stl的unordered_map的count方法,是驗證key值是否存在。
同時如果key值不存在,新加的key對應的值預設為零
給定乙個字串 s 和乙個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。
字串只包含小寫英文本母,並且字串 s 和 p 的長度都不超過 20100。
class
solution
} right++
;while
(match==need.
size()
)//滿足條件,left指標不斷向右邊,前進,直到不滿足條件
char tmp2=s[left];if
(need.
count
(tmp2))}
left++;}
}return res;}}
;
給你乙個字串 s、乙個字串 t,請在字串 s 裡面找出:包含 t 所有字母的最小子串。
示例:輸入: s =
"adobecodebanc", t =
"abc"
輸出: "banc"
說明:如果 s 中不存這樣的子串,則返回空字串 ""。
如果 s 中存在這樣的子串,我們保證它是唯一的答案。
class
solution
int left=
0,right=0;
int match=0;
while
(rightsize()
)}right++
;while
(match==need.
size()
)char w=s[left];if
(need.
count
(w))
} left++;}
}return minlen==int_max?
"":s.
substr
(start,minlen);}
};
滑動視窗leetcode
給定乙個陣列 nums,有乙個大小為 k 的滑動視窗從陣列的最左側移動到陣列的最右側。你只可以看到在滑動視窗 k 內的數字。滑動視窗每次只向右移動一位。返回滑動視窗最大值。示例 輸入 nums 1,3,1,3,5,3,6,7 和 k 3輸出 3,3,5,5,6,7 解釋 滑動視窗的位置 最大值 1 ...
leetcode 滑動視窗
面試題57 ii.和為s的連續正數序列 題目 輸入乙個正整數 target 輸出所有和為 target 的連續正整數序列 至少含有兩個數 序列內的數字由小到大排列,不同序列按照首個數字從小到大排列。題解 摘自 什麼是滑動視窗 滑動視窗可以看成陣列中框起來的乙個部分。在一些陣列類題目中,我們可以用滑動...
leetcode 滑動視窗
3.無重複字元的最長子串 給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pww...