[6]力扣每日一题

Posted tsuipo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[6]力扣每日一题相关的知识,希望对你有一定的参考价值。

题目呈现如下:

技术图片

思路介绍:

采用滑动窗口算法,有点类似于低配版的KMP,比较容易,具体实现见AC代码注释.有些细节还是比较值得注意的.

下附AC代码:

class Solution {
public:
    static int lengthOfLongestSubstring(string s) {
        int isSeen[128]; // 由于题目中出现的是ASCII码,所以用数组是绰绰有余了,不必用到哈希
        memset(isSeen, 0, sizeof(isSeen));
        int le = 0, ri = -1, ans = 0; // 最需要注意的是右侧指针ri的初始值,因为子串s[0]~s[0]也是必须要判断滴~
        int len = s.length(); // 这个需要注意一下,每次求s.length(),时间复杂度为O(n)的..
        for (; le < len; ++le) { 
            if (le > 0) isSeen[s[le - 1]] = 0;
            while (isSeen[s[ri + 1]] == 0 && ri < len - 1) isSeen[s[++ri]] = 1; // 注意,是往ri右侧一个字符眺望的
            ans = max(ans, ri-le+1);
        }
        return ans;
    }
};

以上是关于[6]力扣每日一题的主要内容,如果未能解决你的问题,请参考以下文章

[7]力扣每日一题

力扣 每日一题 811. 子域名访问计数难度:中等

力扣每日一题:993. 二叉树的堂兄弟节点(简单)

✨力扣每日一题,797. 所有可能的路径!!!

力扣 每日一题 934. 最短的桥难度:中等,rating: 1825(dfs / bfs)

力扣每日一题:226111112 二叉树三连发!