最长无重复子串

此题有多种解法,但是每种解法的效率不尽相同。
看到题目首先想到的是:取出字符串的所有子串,滤掉有重复子字符的子串,取剩下的最长子串的长度,但是此解法的时间复杂度为O(n2).

优化算法思路:扫描的时候记录起点位置first,将字符作为key,位置作为value存入字典,如果遇到重复字符,从字典中找出当前字符第一次出现的位置,将first更新为该字符的位置+1,这样保证first到当前扫描字符没有重复字符。同时判断每一段无重复字符串的长度并更新。此解法的时间复杂度为O(n)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容