滑動視窗可以套用模板:
}}如果不是
left = math.max((int)map.get(ch) + 1, left);
而是left = (int)map.get(ch) + 1;
當指標到了第二個a時,因為 left = map.get('a) + 1, left會後退指向到第乙個a的下乙個下標,即1, 所以得到錯誤結果
map只儲存子串中的兩個字元,若遇到新的字元,則刪除最老的那個字元。
然後left再從最老的字元的下標 + 1開始。
比如 abba ,則 最老的字元為 第2個b。
class
solution
map.
put(s.
charat
(i), i)
; max = math.
max(max, i - left +1)
;}return max;
}}
滑動視窗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...