美文网首页
滑动窗口-高频-无重复字符的最长子串

滑动窗口-高频-无重复字符的最长子串

作者: 1哥 | 来源:发表于2023-08-16 08:13 被阅读0次

    高频-滑动窗口-无重复字符的最长子串
    基本思路:
    数据结构:
    (1)一个map
    负责记录当前窗口的映射情况,
    (2)两个指针:
    一个p, 一个q, p<=q, 当前窗口的size = q - p +1;
    一个指针q,不断扩展窗口, 检查*q 是否已经在map 中:
    i. 是的则调整窗口p右移,且去除map 对应flag直至不在map 中;
    ii. 不是的则继续右移q; 并更新max

    int lengthOfLongestSubstring(char * s){
        char *p=s, *q=s;
        int map[256]={0};
        int max=0;
        while(p<=q && *q) {
            if(map[*q]) {
                map[*p]=0;
                p++;
            } else {
                int sz=q-p+1;
                if (sz > max)
                    max=sz;
                map[*q]=1;
                q++;
            }
        }
    
        return max;
    }
    

    相关文章

      网友评论

          本文标题:滑动窗口-高频-无重复字符的最长子串

          本文链接:https://www.haomeiwen.com/subject/dfekmdtx.html