※高频、重点
字节(飞书)、百度等大厂高频面试题:最长不重复子串
. - 力扣(LeetCode)字节飞书面经里的高频题,没做出来,需要好好复习。
重点考察-滑动窗口这个概念,自学记录一下:
一、滑动窗口
滑动窗口本质是双指针。处理连续的 子 字符串/数组,如最长最短等问题。(下图以最长不重复子串为例子)
如上图,核心思想就是满足条件的话,让黑色指针右移动;如果当前条件不满足,白色指针右移动。同时可以记录最长长度。
黑指针先移动,直到不可再移动。
白指针再移动,知道黑指针可移动。
同时,为了满足这种关系,需要用到set数据结构(不可有重复元素)
此类问题核心代码模板:
/* 滑动窗口算法框架 */
void slidingWindow(string s, string t) {
unordered_map<char, int> need, window;
for (cha